← 手順一覧へ戻る
Power Automate Desktopファイル

ファイル名の先頭へ文字をまとめて付ける

PDF名の先頭へ「確認済_」を追加します。すでに付いている名前は除外し、同名ファイルを上書きしない設定と、初回・再実行の結果を5ファイルで確認します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。

実行前に確認

  • 名前変更は元ファイルへ直接反映されます。バックアップとは別の練習用コピーで確認し、同名時の設定を「上書き」に変えないでください。
  • 除外条件は、名前の先頭が確認済_と一致するかだけを見ます。途中に同じ文字がある名前や別の接頭辞は除外しません。「確認済_」が付いていても、PDFの内容を人が確認した証拠にはなりません。
  • 同名衝突の納品.pdfは、何度実行しても残ります。追加変更0件でも「すべて処理済み」とは限りません。衝突の解消方法は人が内容を見て判断します。
  • この例は並行実行や、実行中に別の人が名前を変える状況を扱いません。ファイルの権限・ロック・使用中のアプリによっても失敗し得ます。実行中は練習フォルダーを変更せず、実運用前に対象件数と結果を確認します。

1使うアクション

  1. アクション 1フォルダー内のファイルを取得*.pdfだけ・サブフォルダーなし
  2. アクション 2For eachFilesを1件ずつCurrentFileへ
  3. アクション 3If名前が「確認済_」で始まらない
  4. アクション 4ファイルの名前を変更するIf内:CurrentFileだけを変更。最初はメッセージ表示で候補確認
  5. アクション 5EndIfの終わり
  6. アクション 6EndFor eachの終わり

図で見る処理のイメージ

概念図

5ファイルから始める練習です。初回は1件だけ名前が変わり、同じフローを再実行しても接頭辞を重ねません。

名前が変わるのは、1件だけ

イメージ図

同じフォルダーの変更前と、初回実行後の期待結果

納品.pdfは、そのまま残る変更先の「確認済_納品.pdf」が既にあるため、上書きしません。

もう一度実行 → 追加変更 0件接頭辞は重なりません。納品.pdfの同名衝突は未解消です。

説明用の架空データを使ったイメージ図です。実際の画面・実行結果ではありません。
  1. PDFを取得

    5ファイルのうちPDF4件。メモ.txtは対象外

  2. 先頭で分ける

    確認済_で始まる2件を除外。候補は見積.pdf・納品.pdf

  3. 1件ずつ変更

    見積.pdfを変更。納品.pdfは同名があるので何もしない

  4. 再実行

    取得し直しても追加変更0件。納品.pdfは未変更のまま残る

結果の例

初回:変更1件、ファイル数5個のまま。2回目:追加変更0件。同名衝突があるため、全PDFの処理完了を意味しません。

初回・再実行のファイル名と期待する処理
変更前の名前初回の処理初回後の名前2回目の処理
見積.pdf先頭へ追加確認済_見積.pdf先頭一致で除外
確認済_請求.pdf先頭一致で除外確認済_請求.pdf先頭一致で除外
納品.pdf同名があるので変更しない納品.pdf同名があるので変更しない
確認済_納品.pdf先頭一致で除外確認済_納品.pdf先頭一致で除外
メモ.txtPDFの取得対象外メモ.txtPDFの取得対象外

説明用の架空データから作った期待結果です。実際のPower Automate DesktopやWindowsで実行して確認した結果ではありません。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する8ステップの設定と確認方法
  1. 1

    準備:元ファイルとは別の練習フォルダー C:\PAD練習\PDF を作り、内容が架空のPDFのコピー4個とメモ.txtを、上の表にある5つの名前で置きます。納品.pdfと確認済_納品.pdfは別ファイルとして両方用意し、同名衝突を確認します。Windowsのエクスプローラーで拡張子を表示し、実データでは試さないでください。

  2. 2

    「フォルダー内のファイルを取得」:フォルダーは C:\PAD練習\PDF、ファイルフィルターは *.pdf、サブフォルダーを含める=オフ、出力変数はFilesにします。この例の取得件数は %Files.Count% で4件です。メモ.txtは含まれません。

  3. 3

    「For each」:反復処理を行う値を %Files%、現在の項目をCurrentFileにします。その内側に「If」を置き、最初のオペランド=%CurrentFile.Name%、演算子=「で始まらない」、2番目のオペランド=確認済_ とします。Nameは拡張子込みのファイル名です。FullNameはフォルダーパス込みなので、この先頭判定には使いません。

  4. 4

    最初は名前変更アクションを追加せず、If内に「メッセージを表示」だけを置き、本文を「変更候補:%CurrentFile.Name%」にします。IfのEnd、その外側にFor eachのEndがあることを確認して実行。見積.pdfと納品.pdfの2件だけが表示され、ファイル名は1件も変わらないことを確認します。表示順は問いません。候補2件は変更成功2件を意味しません。

  5. 5

    候補を確認したら、同じIf内のメッセージ表示を「ファイルの名前を変更する」に置き換えます。名前を変更するファイル=%CurrentFile% とし、%Files% 全体を渡さないでください。名前変更ルール=「テキストの追加」、追加するテキスト=確認済_、追加位置=「名前の前」、拡張子を維持=オン、同名ファイルが存在する場合=「何もしない」にします。出力変数はRenamedFilesです。

  6. 6

    フロー全体を実行し、練習フォルダーを確認します。期待する変更は見積.pdfの1件だけ。確認済_請求.pdfと確認済_納品.pdfはIfで除外されます。納品.pdfは変更先の確認済_納品.pdfが既にあるため残り、メモ.txtもそのままです。ファイル数は5個のままです。

  7. 7

    もう一度、取得からフロー全体を実行します。今回の追加変更は0件が期待値です。確認済_見積.pdfには接頭辞を重ねず、納品.pdfは同名衝突で再び変更されません。PDFが0件の空の練習フォルダーへ取得先だけを変えた場合は、For eachの内側を実行しません。確認後は元の練習フォルダーへ戻します。

  8. 8

    確認に使う出力:RenamedFilesは名前変更アクション1回分の出力リストで、ループ全体の累計件数ではありません。同名時に何もしなかった回の出力だけで全体成功と判断せず、変更前後の名前と、未変更で残った納品.pdfを照合してください。権限やロックなどで失敗したら、対象ファイルとエラーを確認してから再実行します。

Microsoft公式ページで確認する

設定を確認できる公式資料