对路径的访问被拒绝Powershell
现在,我刚刚设置了环境变量,并试图将文件输出到Temp目录。每次我运行批处理文件时,尽管它说对路径的访问被拒绝,下面是我的全部代码对路径的访问被拒绝Powershell,powershell,environment-variables,Powershell,Environment Variables,现在,我刚刚设置了环境变量,并试图将文件输出到Temp目录。每次我运行批处理文件时,尽管它说对路径的访问被拒绝,下面是我的全部代码 Param( [Parameter(Mandatory=$true, ValueFromRemainingArguments=$true, HelpMessage="List of files to add to the package")] [String] $File ) Function CreateNugetP
Param(
[Parameter(Mandatory=$true,
ValueFromRemainingArguments=$true,
HelpMessage="List of files to add to the package")]
[String] $File
)
Function CreateNugetPackage {
Param(
[String] $File
)
Process {
$retCode = 0
write-verbose "Getting ID, Version, and Filepath of $file..."
$version = (Get-Item $File).VersionInfo.FileVersion
$id = $file.Substring(0, $File.LastIndexof('.'))
$filepath = Get-ChildItem "$File"
$netVer = ildasm /text $File| findstr Metadata
$netVerShort = $netVer.Substring(0, $netVer.IndexOf('.') + 1 + $netVer.Substring($netVer.IndexOf('.') + 1).IndexOf('.'))
$netVerConv = @{
'v2.0' = "lib\net20";
'// Metadata version: v2.0' = "lib\net20";
'v3.0' = "lib\net30";
'v3.5' = "lib\net35";
'v4.0' = "lib\net40";
'v4.5' = "lib\net45";
}
$target = $netVerConv.Get_Item($netVerShort)
$OriginalFilename = (Get-Item $File).VersionInfo.OriginalFilename
write-verbose "$id"
write-verbose "$version"
write-verbose "$filepath"
write-verbose "$netVer"
write-verbose "$netVerShort"
write-verbose "$target"
function CreateNewNuspec {
param ($File)
$x=
"<?xml version=""1.0""?>
<package xmlns=""http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"">
<metadata>
<id>$id</id>
<version>$version</version>
<authors>CME</authors>
<owners>CME</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$filepath</description>
</metadata>
<files>
<file src=""$id.dll"" target=""$target""/>
</files>
</package>"
return $x
}
CreateNewNuspec > $env:temp "$id-$version.xml"
Return $retCode
}
}
$retVal = CreateNugetPackage $File
exit $retVal
}
Param(
[参数(必需=$true,
ValueFromRemainingArguments=$true,
HelpMessage=“要添加到包中的文件列表”)]
[String]$File
)
函数CreateNugetPackage{
Param(
[String]$File
)
过程{
$retCode=0
编写详细的“获取$file的ID、版本和文件路径…”
$version=(获取项$File).VersionInfo.FileVersion
$id=$file.Substring(0,$file.LastIndexof('.'))
$filepath=获取子项“$File”
$netVer=ildasm/text$File | findstr元数据
$netVerShort=$netVer.Substring(0,$netVer.IndexOf('.'))+1+$netVer.Substring($netVer.IndexOf('.'))+1.IndexOf('.'))
$netVerConv=@{
“v2.0”=“lib\net20”;
'//元数据版本:v2.0'=“lib\net20”;
“v3.0”=“lib\net30”;
“v3.5”=“lib\net35”;
“v4.0”=“lib\net40”;
'v4.5'=“lib\net45”;
}
$target=$netVerConv.Get_项($netVerShort)
$OriginalFilename=(获取项$File).VersionInfo.OriginalFilename
写入详细的“$id”
编写详细的“$version”
写入详细的“$filepath”
编写详细的“$netVer”
写详细的“$netVerShort”
写入详细的“$target”
函数CreateNewNuspec{
参数($File)
$x=
"
$id
$version
继续医学教育
继续医学教育
假的
$filepath
"
返回$x
}
CreateNewNuspec>$env:temp“$id-$version.xml”
返回$retCode
}
}
$retVal=CreateNugetPackage$File
退出$retVal
}
这不是最干净的代码,但这是我第一次在powershell中编写代码好吧,这要归功于米奇·巴拉德利,他非常感谢他的帮助!他建议
$env:temp+"\"+"$id-$version.xml"
但那没用。但真正起作用的是把它放在一个变量中,所以我做了一个变量来保存Micky的建议
$OutputFile = $env:temp+"\"+"$id-$version.xml"
在代码的底部,我调用了这个函数
CreateNewNuspec > $OutputFile
这完全解决了问题这里使用的是相同的函数吗?是的,如果有帮助的话,我可以发布整个代码。是的,我们可以看到它是如何演变的。同时发布
$env:TEMP
指向的内容,通常它只是您的临时文件夹。同时发布错误消息。在CreateNewNuspec>$env:temp“$id-$version.xml”
中,$id和$version的值是什么?另外,您正在写入文件,它不应该是CreateNewNuspec>$env:temp+“\”+“$id-$version.xml”
“$id-$version.xml”输出“AjaxControlToolkit-3.5.50401.xml”,我尝试了“CreateNewNuspec>$env:temp+”\“+“$id-$version.xml”,但再次被拒绝