在 Windows 11 上,我尝试在.bat
文件中执行以下操作:
start "nginx" cmd.exe /U /K "C:\nginx\nginx.exe" -c "C:\Users\John Doe\Documents\PHP-dev\Nginx\nginx.conf" -p "C:\nginx"
这意味着:“打开一个具有窗口标题的 cmd.exe 实例nginx
,使用指定的参数运行 nginx.exe,并保持窗口活动”。
然而,它却打开了一个Windows 终端The filename, directory name, or volume label syntax is incorrect.
实例(包含 cmd.exe)顶部带有文本,然后立即退出命令。嗯?
如果我从已打开的 cmd.exe 或 Windows 终端手动运行“实际命令”,则命令本身就会起作用(不会退出或显示任何错误或输出):
"C:\nginx\nginx.exe" -c "C:\Users\John Doe\Documents\PHP-dev\Nginx\nginx.conf" -p "C:\nginx"
我在 Windows 10 上使用相同的命令没有出现此问题(并且目录结构相同),因此显然,它与命令本身的任何内容都无关。
如果我这样做:
start "nginx" "C:\nginx\nginx.exe" -c "C:\Users\John Doe\Documents\PHP-dev\Nginx\nginx.conf" -p "C:\nginx"
...然后它确实运行了(没有错误),但它在 Windows 终端实例中而不是 cmd.exe 中执行此操作,这破坏了我想要的任务栏分组!
cmd.exe /U /K
由于(或cmd.exe /U /C
)部分“使”命令无效,它可能在做什么?
我只希望它作为一个正确的 cmd.exe 打开(不包装在 Windows 终端中),就像我所有其他以相同方式和由相同文件启动的实例一样.bat
,并且不显示任何奇怪的错误。