【发布时间】:2016-11-12 13:11:13
【问题描述】:
类似的问题在 SO 上被问了好几次,通常答案是:
- 在 PowerShell 上运行相同的命令,因为它也在那里
- 运行
cmd,然后运行命令 - 调用
cmd传递/c
以及我已经尝试过的其他一些事情。但我的问题是:我有一个拒绝在 PowerShell 上运行的特定程序 (cntkpy34.bat)。也就是说,使用上述任何解决方案,我仍然会收到“请从常规 Windows 命令提示符内执行此脚本。”
所以我真正想要的是调用一个新的cmd.exe 窗口并在其上运行命令。这如何在 PowerShell 脚本中实现?
编辑:检查批处理文件,这是它验证外壳的方式:
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。 -
是的,我建议这样做;)
-
@PetSerAl 这些都没有在 PS 上设置(它们指向
cmd.exe没有参数),我不确定这是否安全,因为它必须激活 Anaconda 环境。反正我会试试的。
标签: powershell batch-file cmd