Powershell スクリプトから BAT ファイルを実行する

Siddharth Bishnoi 2023年1月30日
  1. PowerShell スクリプトを作成して実行する
  2. PowerShell スクリプトからバッチファイルを実行する
  3. 引数を使用して PowerShell スクリプトからバッチファイルを実行する
  4. PowerShell からバッチコマンドを実行する
  5. まとめ
Powershell スクリプトから BAT ファイルを実行する

バッチファイルは、行ごとに順番に実行される一連のコマンドで構成されます。これらのバッチファイルは、WindowsNT ファミリ用に最初にリリースされたコマンドラインインタプリタである cmd.exe で実行されます。

同様に、PowerShell ファイルは、PowerShell コマンドラインインターフェイスによって実行されるコマンドのリストで構成されるテキストファイルです。 .ps1 拡張子で保存されます。これは、Windows 用の最新のシェルおよびスクリプトツールであり、より高度な cmd バージョンです。

PowerShell スクリプトから .bat ファイルを実行するには、PowerShell から手動で実行できます。ただし、PowerShell スクリプトに .bat ファイルを追加して、ユーザーの介入なしに自動的に実行すると、注意が必要ないくつかの小さな間違いのために実行されない場合があります。

この記事では、PowerShell スクリプトからバッチファイルを実行するさまざまな方法について説明します。

PowerShell スクリプトを作成して実行する

PowerShell スクリプトを作成するには、メモ帳を開き、実行するコマンドを追加します。拡張子が .ps1 のファイルを保存して、PowerShell ファイルとして保存します。

任意のテキストエディタを使用してファイルを作成できます。

PowerShell スクリプトを作成する

PowerShell スクリプトを実行するには、PowerShell ファイルを右クリックし、[PowerShell で実行]をクリックします。PowerShellISE でファイルを編集することもできます。

PowerShell スクリプトを実行する

PowerShell スクリプトからバッチファイルを実行する

PowerShell スクリプトから .bat ファイルを実行するには、PowerShell スクリプトに次の行を追加します。

& .\testfile1.bat

PowerShell スクリプトから BAT ファイルを実行する

ただし、これは、testfolder が相対パスである場合、またはパスでドライブ文字を使用している場合にのみ機能します。より安定したアプローチをとることができます。

たとえば、testfile.bat という名前の .bat ファイルがあります。これは、opt.txt という名前のテキストファイルに出力を送信するコマンドで構成されています。バッチファイルを PowerShell スクリプトに追加して、PowerShell スクリプトの実行時に自動的に実行します。

バッチファイルを実行するための PowerShell スクリプトに次の行を追加します。

cmd.exe /c 'testfile1.bat'

CMD を使用して PowerShell スクリプトから BAT ファイルを実行する

出力:

PowerShell スクリプト出力から BAT ファイルを実行する

PowerShell スクリプトからバッチファイルを実行する別の方法は、Start-Process コマンドレットを使用することです。バッチファイルを実行するには、PowerShell スクリプトに次のコード行を追加します。

Start-Process -FilePath 'C:\Users\Aastha Gas Harda\Desktop\testfile1.bat' -NoNewWindow

Start-Process を使用して PowerShell スクリプトから BAT ファイルを実行する

ここで:

  • -Filepath は、バッチファイルのパスを指定します。
  • -NoNewWindow は、現在のウィンドウでプロセスを開始します。

管理者としてバッチファイルを実行するには、上記のコードに -verb runas を追加します。

Start-Process -FilePath 'C:\Users\Aastha Gas Harda\Desktop\testfile1.bat' -Verbose Runas -NoNewWindow

管理者として PowerShell スクリプトから BAT ファイルを実行する

このコマンドは、.bat ファイルに実行時に管理者権限を必要とするコマンドが含まれている場合に役立ちます。

引数を使用して PowerShell スクリプトからバッチファイルを実行する

引数を含む PowerShell スクリプトからバッチファイルを実行するには、-ArgumentList パラメーターを使用し、文字列の配列で各引数を指定することで実行できます。上記の例を使用して、PowerShell スクリプトに次のコード行を追加します。

Start-Process -FilePath "cmd.exe" -ArgumentList @("/B", "/C", "`"", "^`"testfile1.bat^`"", "^`"$inputFilePath^`"", "`"") -NoNewWindow;

引数を使用して PowerShell スクリプトから BAT ファイルを実行する

PowerShell からバッチコマンドを実行する

バッチファイルではなく、PowerShell スクリプトから直接バッチコマンドを実行することもできます。次のコード行を追加して echo コマンドを実行し、出力を hello world として出力します。

Start-Process "cmd.exe" '/c echo helloworld' -NoNewWindow

PowerShell から直接 CMD コマンドを実行する

まとめ

そこで、PowerShell スクリプトから可能な限り安全な方法でバッチファイルを実行する方法について説明しました。また、ユーザーの介入なしに PowerShell スクリプトではなく、PowerShell から直接バッチコマンドを実行する方法についても説明しました。