[英]Executing powershell.exe from powershell script (run in ISE but not in script)
我是這些功能強大的Power Shell世界的新手。 我的腳本有問題,非常感謝您的幫助。
我有一個腳本“ cmd4.ps1”,該腳本需要運行另一個腳本“ Transfer.ps1”,該腳本需要接收3個字符串參數,並且需要作為與“ cmd4.ps1”不同的其他進程來運行。
cmd4.ps1:
$Script="-File """+$LocalDir+"\Remote\Transfer.ps1"" http://"+$ServerIP+"/Upload/"+$FileName+" "+$ServerIP+" "+$LocalIP Start-Process powershell.exe -ArgumentList $Script
射精后, $Script
的值類似於
-File "c:\temp re\Remote\Transfer.ps1" http://10.1.1.1/Upload/file.txt 10.1.1.1 10.1.1.10
包含使用-File
參數運行Powershell.exe腳本的語法以及Transfer.ps1需要的三個參數( "http://10.1.1.1/Upload/file.txt", 10.1.1.1, 10.1.1.10
) 。
當我在PowerShell ISE中編寫這些指令時,我可以看到每個值都是正確的,並且以正確的值執行了PowerShell.exe,一切正常!但是,如果我將這些指令放在“ cmd4.ps1”腳本中,則無法正常工作,我表示參數不正確,因為我可以看到它以powershell啟動,但從未結束。
-ArgumentList
需要一個字符串參數數組,而不是單個字符串。 嘗試以下方法:
$ScriptArgs = @(
'-File'
"$LocalDir\Remote\Transfer.ps1"
"http://$ServerIP/Upload/$FileName $ServerIP $LocalIP"
)
Start-Process powershell.exe -ArgumentList $ScriptArgs
請注意,您可以簡化args的字符串構造,如上所示。
為什么不把它放在cmd4.ps1中呢?
& "c:\temp re\Remote\Transfer.ps1" "http://10.1.1.1/Upload/file.txt" "10.1.1.1" "10.1.1.10"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.