所以我正在嘗試撰寫一個腳本,允許我打開幾個 cmd 命令提示符并在其中寫入相同的命令但使用不同的變數。
我提出的解決方案是撰寫一個 PowerShell 腳本,在回圈內呼叫一個 cmd 檔案,并每次將一個變數傳遞給 cmd 檔案,但我被卡住了,PowerShell 腳本只執行一個 cmd。
有人可以幫助解決這個問題嗎?
謝謝 :)
uj5u.com熱心網友回復:
您可以使用以下內容:
cmd.exe /c [command]
例如
$x = 1..100
foreach ($n in $x){cmd.exe /c ping 192.168.1.$n}
uj5u.com熱心網友回復:
mohamed saeed 的回答顯示您在當前控制臺視窗中按順序同步執行cmd.exe命令。
相比之下,如果您想以異步方式打開多個互動式 cmd.exe會話,每個會話都在其單獨的新視窗中,請使用's選項并通過以下方式呼叫:cmd.exe/kcmd.exeStart-Process
# Open three new interactive cmd.exe sessions in new windows
# and execute a sample command in each.
'date /t', 'ver', "echo $PSHOME" | ForEach-Object {
# Parameters -FilePath and -ArgumentList implied.
Start-Process cmd.exe /k, $_
}
筆記:
除非您的
cmd.exe控制臺視窗Let the system position the window默認選中“屬性”對話框中的復選框,否則所有新視窗將完全重疊,因此您將立即只看到最后一個打開的視窗。最后打開的新視窗將具有鍵盤焦點。
傳遞給的命令
/k會立即執行,但隨后會進入互動式會話。
uj5u.com熱心網友回復:
如果你想保持純批處理,你可以使用 start 命令。/k 開關保持命令列打開。如果要執行命令并終止,可以使用 /c :
start "" %comspec% /k ping 192.168.1.1
在 powershell 中,您可以使用帶有 ArgumentList 的 Start-Process 命令:
Start-Process cmd.exe -ArgumentList "/k ping 192.168.1.1"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/460287.html
上一篇:在HTML中多次使用相同的變數
