我需要按顺序在PowerShell的命令提示符中运行以下命令。
/k "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"
copype amd64 C:\WinPE_amd64_PS
我可以通过以下PowerShell命令执行第一个命令:
Start-Process -FilePath 'C:\Windows\system32\cmd.exe' -ArgumentList '/k "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"'
这很好,但是我不能将第二个命令传递到启动过程中。我该怎么做?需要加载DandISetEnv.bat
文件,并使用/k
开关使命令提示符保持打开状态。
我可以在第一个命令和第二个命令之间放置一个开关或命令,还是将下一个命令重定向到已启动的命令提示符进程中?
答案 0 :(得分:1)
由于您的意图是将多个命令传递给cmd
,因此您需要使用 its 语句链运算符&
将这些命令分开:
# Define the array of commands to pass to cmd.exe
$cmdCommands =
'"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\DandISetEnv.bat"',
'copype amd64 C:\WinPE_amd64_PS'
Start-Process -FilePath cmd -ArgumentList ('/k ' + ($cmdCommands -join ' & '))
请注意,如果您只想在前者成功的情况下执行后一个命令,则应使用&&
而不是&
。