【发布时间】:2014-12-18 16:03:33
【问题描述】:
现在我刚刚设置了我的环境变量,并试图将文件输出到 Temp 目录。每次我运行批处理文件时,虽然它说访问路径被拒绝,但下面是我的全部代码
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
}
这不是最干净的代码,但这是我第一次在 powershell 中编码
【问题讨论】:
-
这里使用的是同一个函数吗? stackoverflow.com/questions/27448560/…
-
是的,如果有帮助,我可以发布整个代码
-
是的,所以我们可以看到它是如何演变的。还要发布
$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" " 但又被拒绝了
标签: powershell environment-variables