1
我得到了一個啓動另一個腳本並將參數傳遞給它的PowerShell腳本。 我這樣做是與Start-Job
,因爲我不想等到第二個腳本完成:啓動作業scriptblock傳遞變量
SCRIPTA:
start-job -name EnableAutoUnlock -scriptblock {Invoke-Command -script { C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "\\Path\To\Script\EnableAutoUnlock.ps1" $VolumeDriveLetter }}
ScriptB:
[CmdletBinding()]
Param (
[Parameter(Position=0)]
[string]$drive
)
<do stuff with $drive here>
$VolumeDriveLetter
只是一個被處理的驅動器號即「C:」
不幸的是,雖然$VolumeDriveLetter
具有預期的值,但鍵入它確實工作正常,但通過變量參數傳遞不起作用。
作品:
start-job -name EnableAutoUnlock -scriptblock {Invoke-Command -script { C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "\\Path\To\Script\EnableAutoUnlock.ps1" C: }}
不起作用
$VolumeDriveLetter = "C:"
start-job -name EnableAutoUnlock -scriptblock {Invoke-Command -script { C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe "\\Path\To\Script\EnableAutoUnlock.ps1" $VolumeDriveLetter }}
編輯:ScriptB輸出傳遞的變量爲空
缺少什麼我得到傳遞變量上班?
謝謝您的回答,但我剛剛嘗試過,不幸的是它不起作用(與之前一樣,scriptB收到的參數只是空的) –
非常感謝,我使用了編輯後的答案,它的工作非常完美 –