从PowerShell

时间:2016-11-12 13:11:14

标签: powershell batch-file cmd

在SO上多次询问了一个类似的问题,答案通常是:

  • 在PowerShell上运行相同的命令,因为它也在那里
  • 运行cmd,然后运行命令
  • 调用cmd传递/c

以及我已经尝试过的其他一些事情。但我的问题是:我有一个特定的程序(cntkpy34.bat拒绝在PowerShell上运行。也就是说,使用上述任何解决方案,我仍然可以“请在常规Windows命令提示符下执行此脚本。”

所以我真正想要的是调用一个新的cmd.exe窗口并在其上运行命令。如何在PowerShell脚本中实现这一目标?

编辑:检查批处理文件,这是它验证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流程也不会这样做。

1 个答案:

答案 0 :(得分:3)

  

Start-Process cmd -Argument“/ c cntkpy34.bat”-RedirectStandardOutput somefile

这将打开一个新的cmd窗口并在那里运行