在下面的 powershell 脚本中,我传递了三个字符串参数。$ComputerName 参数行按预期工作。我可以远程进入我指定的机器。
问题 1
在 $latestbuildfolder 行上,我使用 $builddefinition 参数来指定构建定义。它附加了构建定义的名称,但不列出该文件夹内的文件夹。如果我将 $BuildDefinition 参数替换为“TeamBuild”我们的构建定义名称,那么它能够列出所有文件夹并获取最新文件夹。有些我觉得加入不起作用。我也尝试过使用 Join-Path 但仍然无法正常工作。
问题 2
当我尝试在该字符串中指定 $Configuration 时,在 $deploycmdlocation 行上它不起作用。它在该路径之间输出一个空白。我使用 Write-Host 检查并将参数传递给脚本。
param(
[System.String] $ComputerName,
[System.String] $Configuration,
[System.String] $BuildDefinition
)
$session = New-PSSession -ComputerName $ComputerName
Invoke-Command -Session $session -ScriptBlock {
$latestbuildfolder = Get-ChildItem "C:\procmon\procmonBuilds\$BuildDefinition" | Sort-Object LastWriteTime -Descending | SELECT-Object -First 1
$deploycmdlocation = "\procmon\procmonWebProject\$Configuration\_PublishedWebsites\procmonWebProject_Package\procmonWebProject.zip"
$finalstring = $latestbuildfolder.FullName + $deploycmdlocation
$finalstring
}
Remove-PSSession $session
我已经尝试了很多选择,但到目前为止仍然没有运气。