Power Automate| 「DOSコマンドの実行」アクションとは?わかりやすく解説

Power Automate Desktopで「黒い画面の命令」を自動化!「DOSコマンドの実行」アクションを徹底解説!

「Power Automate Desktop(パワー・オートメイト・デスクトップ、略してPAD:パッド)でパソコンの作業を自動化したいんだけど、『DOSコマンドの実行』っていうアクションがあるんだけど、これって何ができるの?」「Windowsの『コマンドプロンプト』でいつも手入力している命令を、自動でやらせたいんだけど、やり方が分からないな…」

こんな風に感じたことはありませんか? Power Automate Desktopは、あなたのパソコンの画面操作を自動化できる便利なツールですが、時には、画面を直接操作するのではなく、Windowsの奥深くにある「コマンドプロンプト」(通称「黒い画面」)に直接命令を送り、よりシステムに近いレベルで作業を行わせたい、と考えることがありますよね。そんな時にその力を発揮するのが、「DOSコマンドの実行」アクションです。

Power Automate Desktopの「DOSコマンドの実行」アクションは、あなたが普段手動で行っているコマンドプロンプトでの作業を自動化し、より効率的なシステム管理やファイル操作を実現するための強力な機能です。


 

「DOSコマンドの実行」アクションってどんなもの?なぜ必要なの?

Power Automate Desktopにおける「DOSコマンドの実行」アクションは、Windowsの「コマンドプロンプト」(CMD.exe)を開き、あなたが指定したコマンドラインの命令を自動的に実行させるためのアクションです。これは、まるでロボットがあなたの代わりにコマンドプロンプトの黒い画面に文字を打ち込み、Enterキーを押すようなものです。

 

なぜ「DOSコマンドの実行」が必要なのか?その大きなメリット

Power Automate Desktopの多くのアクションは、ボタンのクリックや文字入力など、画面上のUI(ユーザーインターフェース)を直接操作することに特化しています。しかし、「DOSコマンドの実行」アクションを使うことには、以下のような、UI操作だけでは難しい、または非効率なメリットがあります。

  • システムレベルの操作を自動化:パソコンのOS(オペレーティングシステム)そのものに関わる操作や、Windowsに標準で備わっている機能(例: ファイルのコピー、フォルダーの作成、ネットワーク設定の確認など)を、より高速かつ確実に自動化できます。UI操作よりも安定している場合も多くあります。
  • バッチファイルやスクリプトの実行:.batや.cmdといった拡張子の「バッチファイル」や、Python(パイソン)、PowerShell(パワーシェル)などのスクリプトファイルを、コマンドプロンプト経由で実行できます。これにより、PAD単体では難しい複雑な処理を、他のスクリプト言語と連携して実現できます。
  • プログラムの起動と制御:特定のアプリケーションをコマンドラインオプション(起動時の設定)を指定して起動したり、バックグラウンドで目に見えない形で起動したりできます。
  • コマンドの出力を取得し、フローで利用:実行したコマンドの「結果」(コマンドプロンプトに表示される文字列)や「エラーコード」(コマンドが正常終了したかどうかの情報)をPower Automate Desktopの変数に取得し、その後のフローで利用できます。これにより、コマンドの実行結果に応じて、次の処理を変えるといった柔軟な自動化が可能です。
  • シンプルなファイル操作の高速化:単にファイルをコピーしたり、フォルダーを作成したり、削除したりするだけであれば、GUI(画面操作)アクションよりも「copy」や「mkdir」、「del」といったDOSコマンドの方が、はるかに高速かつ効率的に実行できる場合があります。

 

「DOSコマンドの実行」はPower Automate Desktopの機能

この「DOSコマンドの実行」アクションは、Power Automateのクラウドフローでは直接利用できません。あなたのパソコンにインストールされているPower Automate Desktop(PAD)の機能です。クラウドフローからDOSコマンドを実行したい場合は、クラウドフローからデスクトップフローを呼び出す、という形で連携させることになります。


 

「DOSコマンドの実行」アクションの主な設定項目と使い方

Power Automate Desktopで「DOSコマンドの実行」アクションを使うには、アクションをフローに追加し、いくつかの項目を設定します。

 

アクションの追加方法

PADのフローデザイナー画面の左側にある「アクション」の一覧で、「システム」というカテゴリの中、または検索ボックスに「DOSコマンド」と入力すると、「DOS コマンドの実行」アクションが見つかります。これをフローの実行したい場所にドラッグ&ドロップしてください。

 

主な設定項目

  1. 実行する DOS コマンド (DOS command to execute):ここに、コマンドプロンプトで実行したい具体的な命令文を入力します。
    • : mkdir C:\新しいフォルダ (「Cドライブに『新しいフォルダ』を作成する」)
    • : dir C:\Users\YourUser\Documents (「指定されたドキュメントフォルダの内容を一覧表示する」)
    • : ping google.com (「https://www.google.com/url?sa=E&source=gmail&q=google.comへ通信テストを行う」)
    • : powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\MyPowerShellScript.ps1" (PowerShellスクリプトを実行する)
    • ポイント: 実行したいコマンドがパスを通っていない場所にある場合(例: 特定のアプリケーションの実行ファイル)、そのファイルのフルパスを指定するか、事前にcdコマンドで作業ディレクトリを移動する必要があります。
  2. コマンドプロンプト ウィンドウの動作 (Command prompt window behavior):コマンドプロンプトの黒い画面を、フローの実行中にどのように表示させるかを設定します。
    • 通常: コマンドプロンプトのウィンドウが画面に表示され、実行の様子が見えます。デバッグやテスト時に便利です。
    • 非表示: コマンドプロンプトのウィンドウが画面に表示されず、バックグラウンドで実行されます。実際の自動化運用時によく使われます。
    • 最大化: コマンドプロンプトのウィンドウが最大化されて表示されます。
  3. コマンドプロンプトの作業フォルダー (Working folder):コマンドを実行する際の「現在位置」となるフォルダーを指定します。ここに指定されたフォルダーを基準として、相対パスでファイルなどを指定できます。指定しない場合、既定の場所(通常はPADの実行コンソールの場所など)で実行されます。
  4. 結果を格納する変数 (Variable to store result):実行したDOSコマンドがコマンドプロンプトに表示した標準出力(成功時のメッセージなど)を、Power Automate Desktopの変数に保存します。この変数には、コマンドを実行した結果のテキストデータが格納されます。
  5. エラーコードを格納する変数 (Variable to store error code):実行したDOSコマンドの「終了コード(リターンコード)」をPower Automate Desktopの変数に保存します。
    • 0: コマンドが正常に終了したことを示します。
    • 0以外: コマンドが何らかのエラーで終了したことを示します。この値を確認することで、コマンドの実行が成功したか失敗したかを判断し、その後のフローの処理を分岐させることができます。

 

「DOSコマンドの実行」アクションの具体的な手順(例:フォルダを自動で作成する)

ここでは、Power Automate Desktopを使って、指定した場所に新しいフォルダーを自動で作成するフローを例に、具体的な作成手順をステップバイステップで解説します。

ステップ1:Power Automate Desktopで新しいフローを作成します。

  1. Power Automate Desktopアプリを起動し、あなたのMicrosoft 365アカウントでサインインします。
  2. ホーム画面から「新しいフロー」をクリックして、新しいデスクトップフローを作成します。フロー名を「自動フォルダ作成」など、分かりやすい名前にします。

 

ステップ2:ファイルパスを変数として設定します(管理しやすくするため)。

フォルダを作成する場所のパスを、変数として設定しておくと、後から変更しやすくなります。

  1. フローデザイナーの左側にある「アクション」の一覧から「変数」カテゴリを展開し、「変数を設定」アクションをフローの実行したい場所にドラッグ&ドロップします。
  2. 「変数を設定」アクションの設定を行います。
    • 設定する変数: FolderPath (自動で変数名が生成されます)
    • : 新しく作成したいフォルダーの親フォルダーのパスを入力します。(例: C:\業務フォルダ\新規作成用)。

 

ステップ3:「DOSコマンドの実行」アクションを追加します。

いよいよDOSコマンドでフォルダーを作成するアクションを追加します。

  1. 「変数を設定」アクションの下に「新しいアクション」を追加します。
  2. 左側にある「アクション」の一覧から「システム」カテゴリを展開し、「DOS コマンドの実行」アクションを見つけて、フローデザイナーにドラッグ&ドロップします。
  3. 「DOS コマンドの実行」アクションの設定を行います。
    • 実行する DOS コマンド: ここにフォルダーを作成するコマンドを入力します。mkdirコマンドを使います。
      • 例: mkdir "%FolderPath%\今日の日付フォルダ" (今日の日付のフォルダを親フォルダの下に作成)
      • 動的なフォルダ名: 例えば、今日の日付をフォルダ名に含めたい場合は、以下のように式を使って文字列を生成できます。mkdir “C:\業務フォルダ\新規作成用\%CurrentDate%”(※この場合、このステップの前に「現在の datetime を取得する」アクションで%CurrentDate%変数に現在の日付を格納する処理が必要です。)
      • 例(変数を利用): mkdir “%FolderPath%\新規フォルダ”この例では、「新しいフォルダ」という名前のフォルダが、%FolderPath%変数で指定したパスの下に作成されます。【ポイント】: パスにスペースが含まれる場合は、パス全体を”(ダブルクォーテーション)で囲むことを忘れないでください。
    • コマンドプロンプト ウィンドウの動作: 通常は「非表示」を選択して、画面に黒い画面が表示されないようにします。テスト中は「通常」でも構いません。
    • 結果を格納する変数: 例えば「%CommandOutput%」という変数名を入力します。コマンドが成功した際のメッセージがここに保存されます。
    • エラーコードを格納する変数: 例えば「%ErrorCode%」という変数名を入力します。コマンドの終了コード(通常、成功なら0、失敗なら0以外)がここに保存されます。

 

ステップ4:コマンドの実行結果を確認する(エラーハンドリング)

コマンドが正しく実行されたか、エラーが発生しなかったかを確認します。

  1. 「DOS コマンドの実行」アクションの下に「新しいアクション」を追加します。
  2. 左側のアクション一覧から「条件」カテゴリを展開し、「If」(もし〜ならば)アクションをドラッグ&ドロップします。
  3. 「If」アクションの設定を行います。
    • 最初のオペランド: 「エラーコードを格納する変数」で指定した変数(例: ErrorCode)を選択します。
    • 演算子: 「次と等しい」を選択します。
    • 2番目のオペランド: 0 と入力します。(DOSコマンドは成功すると終了コード0を返すため)
  4. 「If」ブロックの「If」(成功の場合)のパスに「表示メッセージ」アクションを追加します。
    • メッセージボックスのタイトル: 「フォルダ作成成功」
    • 表示するメッセージ: 「フォルダが正常に作成されました。@{CommandOutput}」のように、成功メッセージを表示します。
  5. 「If」ブロックの「Else」(失敗の場合)のパスに「表示メッセージ」アクションを追加します。
    • メッセージボックスのタイトル: 「フォルダ作成失敗」
    • 表示するメッセージ: 「フォルダ作成に失敗しました。エラーコード: @{ErrorCode}。出力: @{CommandOutput}」のように、エラーの詳細を表示します。
  6. デスクトップフローを保存します。

 

ステップ5:デスクトップフローをテストする

作成したデスクトップフローをテストします。

  1. フローデザイナー画面のツールバーにある「実行」(再生ボタン)をクリックします。
  2. フローが実行され、指定した場所に新しいフォルダーが作成されることを確認します。成功メッセージが表示されるはずです。
  3. 【エラーのテスト】: 存在しないドライブを指定する(例: mkdir "Z:\新しいフォルダ")など、わざとエラーになるようなコマンドに変えてテスト実行し、エラーメッセージが正しく表示されるかを確認してみてください。

 

「DOSコマンドの実行」アクションを安全かつスムーズに使うための「大切なポイント」

「DOSコマンドの実行」アクションは非常に強力である反面、誤った使い方をすると、パソコンのシステムに悪影響を与えたり、セキュリティ上のリスクが生じたりすることもあります。

 

1. 実行する「コマンド」を正確に理解する

  • コマンドの知識: 実行したいDOSコマンドがどのような挙動をするのか、どのような結果を返すのか、エラーになるのはどんな場合か、事前に正確に理解しておくことが不可欠です。不明なコマンドや、インターネットで見つけたよく分からないコマンドを安易に実行しないでください。
  • 権限が必要なコマンド: 一部のコマンド(例: システム設定の変更、プログラムのインストール/アンインストールなど)は、管理者権限でコマンドプロンプトを実行しないと動作しません。このようなコマンドを使う場合は、Power Automate Desktopも「管理者として実行」で起動している必要があります。

 

2. 「コマンドプロンプト ウィンドウの動作」を適切に設定する

  • 開発/デバッグ時: 「通常」に設定して、コマンドプロンプトの画面が表示されるようにすることで、コマンドの実行状況やエラーメッセージをリアルタイムで確認できます。
  • 運用時: 実際に自動化を行う際は、「非表示」に設定して、画面にコマンドプロンプトが表示されないようにします。これにより、ユーザーの作業を邪魔せず、スムーズに自動化が実行されます。

 

3. 「結果」と「エラーコード」の変数を必ず利用する

コマンドの実行結果やエラーの状態を正確に把握するために、「結果を格納する変数」と「エラーコードを格納する変数」は必ず設定し、その後のフローでこれらの変数の値を確認するロジック(例: Ifアクション)を組み込みましょう。これにより、コマンドが成功したか失敗したかを判断し、それに応じた適切な処理(例: 成功なら次に進む、失敗なら通知を送る)を行うことができます。

 

4. セキュリティに十分配慮する

  • 安易なコマンド実行を避ける: ユーザーからの入力や外部から取得したデータをそのままコマンドとして実行させるようなフローは、セキュリティ上の脆弱性(コマンドインジェクション)となる可能性があります。入力値を厳しくチェックしたり、信頼できないソースからの入力を直接コマンドに渡さないようにしたりするなど、細心の注意を払ってください。
  • 「非表示」でもセキュリティは変わらない: コマンドプロンプトのウィンドウを「非表示」にしても、コマンドはバックグラウンドで実行されます。これはセキュリティとは直接関係ありません。

 

5. 「待機」アクションを適切に使う

コマンドの実行には時間がかかる場合があります(特に大きなファイルの操作や、外部ネットワークとの通信を伴うコマンド)。コマンドの実行が完了する前に次のアクションに進んでしまうと、フローが失敗する可能性があります。

対策: コマンド実行の直後に、十分な時間を確保するための「待機」(Delay)アクションを挿入することを検討してください。

 

6. 「より具体的なアクション」を優先する

Power Automate Desktopには、「DOSコマンドの実行」よりも、特定の目的に特化した、より安全で使いやすいアクションが多数用意されています。

  • : フォルダーを作成したいだけなら、「DOSコマンドの実行」でmkdirを使うよりも、「フォルダーの作成」アクションの方が、設定も簡単で、エラーも少なく、おすすめです。
  • : ファイルをコピーしたいだけなら、「DOSコマンドの実行」でcopyを使うよりも、「ファイルのコピー」アクションの方が、細かな設定がしやすく、安全です。

「DOSコマンドの実行」アクションは、これらの具体的なアクションでは対応できない、よりシステム寄りの操作や、特定のスクリプト実行が必要な場合にのみ使用することを推奨します。


Power Automate Desktopの「DOSコマンドの実行」アクションは、Windowsのコマンドライン操作を自動化するための非常に強力なツールです。しかし、その強力さゆえに、正しい知識と慎重な操作が求められます。上記で解説した原因と対処法を理解し、特にコマンドの正確な理解結果変数の活用、そしてセキュリティへの配慮を徹底することで、あなたはこれらの問題を解決し、パソコンのシステムレベルの作業を安全かつ効率的に自動化できるようになるでしょう。