在SO上已经有多次类似的问题,通常的答案是:
- 在PowerShell中运行相同的命令,因为它也存在
- 运行
cmd
,然后再运行命令 - 传递
/c
来调用cmd
还有一些其他方法,我已经尝试过了。但我的问题是:我有一个特定的程序(cntkpy34.bat
),它拒绝在PowerShell上运行。也就是说,无论使用以上哪种解决方案,我仍会得到“请在常规Windows命令提示符内执行此脚本”的提示。
所以我真正想要的是,在PowerShell脚本中调用新的cmd.exe
窗口并在其中运行命令。如何实现这一点?
编辑:检查批处理文件,它是这样验证shell的:
if /I "%CMDCMDLINE%" neq ""%COMSPEC%" " (
echo.
echo Please execute this script from inside a regular Windows command prompt.
echo.
exit /b 0
)
即使启动一个新的cmd.exe
进程也不起作用。
cntkpy34.bat
文件中删除验证 shell 的部分即可。如果您无法编辑该文件,则可以使用以下 PowerShell 命令满足该条件:$env:CMDCMDLINE=$env:COMSPEC
。 - user4003407cmd.exe
),而且我不确定这是否安全,因为它必须激活 Anaconda 环境。无论如何,我会尝试一下。 - villasv