通过PowerShell运行.cmd文件

Dec*_*lty 25 windows powershell cmd

我试图使用PowerShell在远程服务器上运行.cmd文件.

在我的.ps1脚本中我试过这个:

C:\MyDirectory\MyCommand.cmd
Run Code Online (Sandbox Code Playgroud)

它导致此错误:

C:\MyDirectory\MyCommand.cmd is not recognized as the name of a cmdlet,
function, script file, or operable program.
Run Code Online (Sandbox Code Playgroud)

还有这个

Invoke-Command C:\MyDirectory\MyCommand.cmd
Run Code Online (Sandbox Code Playgroud)

导致此错误:

Invoke-Command : Parameter set cannot be resolved using the specified named
parameters.
Run Code Online (Sandbox Code Playgroud)

我不需要将任何参数传递给PowerShell脚本.我正在寻找的正确语法是什么?

alr*_*roc 17

Invoke-Item 将查找文件类型的默认处理程序并告诉它运行它.

它与在资源管理器中双击文件或使用相同基本相同start.exe.


mir*_*los 9

尝试调用cmd /c C:\MyDirectory\MyCommand.cmd- 这应该工作.

  • 但是你如何在这里使用powershell变量?什么`MyCommand.cmd`在一个名为`$ myCmd`的变量中的字符串中? (3认同)
  • @The Muffin Man:您可以在 PowerShell 变量中为 cmd 构建命令行字符串,然后通过 cmd 将其通过管道传输:`$myCommandLineStr | cmd`。这是避免“Invoke-Item”疯狂的解决方法。 (2认同)

小智 9

转到 C:\MyDirectory 并尝试以下操作:

.\MyCommand.cmd
Run Code Online (Sandbox Code Playgroud)