以下のPowerShellスクリプトでは、3つの文字列パラメーターを渡しています。$ComputerNameパラメーター行は期待どおりに機能します。指定したマシンにリモート接続できます。
問題1
$latestbuildfolder行で$builddefinitionパラメーターを使用してビルド定義を指定しています。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
私はたくさんのオプションを試しましたが、今のところ運がありません。