web-dev-qa-db-ja.com

PowerShellを介して.cmdファイルを実行する

PowerShellを使用してリモートサーバーで.cmdファイルを実行しようとしています。

私の.ps1スクリプトでこれを試しました:

C:\MyDirectory\MyCommand.cmd

次のエラーが発生します。

C:\MyDirectory\MyCommand.cmd is not recognized as the name of a cmdlet,
function, script file, or operable program.

この

Invoke-Command C:\MyDirectory\MyCommand.cmd

このエラーが発生します:

Invoke-Command : Parameter set cannot be resolved using the specified named
parameters.

PowerShellスクリプトにパラメーターを渡す必要はありません。私が探している正しい構文は何ですか?

25
Declan McNulty

Invoke-Item は、ファイルタイプのデフォルトハンドラーを検索し、実行するように指示します。

基本的に、エクスプローラでファイルをダブルクリックするか、start.exe

17
alroc

cmd /c C:\MyDirectory\MyCommand.cmdを呼び出してみてください–これでうまくいくはずです。

9
mirabilos

C:\ MyDirectoryに移動して、これを試してください。

.\MyCommand.cmd
3

バッチファイルを実行またはPowerShellに変換するには(特に、スケジュールされたすべてのタスクスクリプトに証明書で署名する場合)、たとえば、deletefolders.ps1などのPowerShellスクリプトを作成します。

スクリプトに次を入力します。

cmd.exe /c "rd /s /q C:\#TEMP\test1"

cmd.exe /c "rd /s /q C:\#TEMP\test2"

cmd.exe /c "rd /s /q C:\#TEMP\test3"

*各コマンドを新しい行に配置して、cmd.exeを再度呼び出す必要があります。

このスクリプトに署名し、PowerShellから実行して、コマンドをコマンドプロンプト/ cmdに直接出力できます。

バッチファイルを実行するよりもはるかに安全な方法です。

0
Armand G.