PowerShell start-process -argumentlist:不适用于 cmd.exe,但适用于 notepad.exe

PowerShell start-process -argumentlist:不适用于 cmd.exe,但适用于 notepad.exe

我正在为事件调度程序编写 .bat 文件脚本,但遇到了一个问题。

start-process notepad.exe -argumentlist 'C:\test.bat' -verb runas这有效

start-process cmd.exe -argumentlist 'C:\test.bat' -verb runas但这只会打开一个 cmd 窗口并且不执行任何操作。

...-argumentlist 'start C:\test.bat'不起作用但仍打开 cmd 窗口

C:\test.bat这有效

.bat文件没有问题。我原来的脚本是powershell.exe start-process -windowstyle hidden cmd.exe -argumentlist '/c /min start /b "c:\test.bat"' -verb runas

与 notepad.exe 不同,argumentlist 似乎没有传递给 cmd.exe。

我该如何修复此问题?

答案1

这个问题已经在堆栈溢出

基本上,你的 cmd.exe 语法是错误的。从Microsoft 文档,你会发现

/c 执行字符串指定的命令然后停止。
/k 执行字符串指定的命令并继续。

因此,你的论据列表应该是这样的'/c c:\test.bat'

相关内容