• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:リストを読み込んでファイル名を書換るバッチファイル)

リストを読み込んでファイル名を書換るバッチファイル

このQ&Aのポイント
  • バッチファイル(test.bat)を使用して、リストから読み込まれたファイル名を書き換えます。
  • 変更前のファイル名と変更後のファイル名が、別々のテキストファイルにリストされています。
  • バッチファイルを実行すると、変更前のファイル名が変更後のファイル名で置換されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • wek00
  • ベストアンサー率61% (91/147)
回答No.2

時期を逸した感がありますが。 関連するQ&Aに出ているご自信の質問 https://okwave.jp/qa/q9365112.html バッチファイル 2ファイルをfor /f処理したい のようにするのが最適ではないでしょうか。 (この投稿を見つけたのは、以降の内容を投稿しておこうと開いたところでした。蛇足となってしまいますが一応紹介だけしておきます) なお、つい先日私用で似たような処理をしたいことがあり改めて調べたところ、テキストファイルの各行を交互に読み込んでマージするコマンドpasteというのがUNIX系環境にあり、Windowsでも同様の動作をするものが公開されていました。Vectorで入手できるもの、PowerShell用、Cygwin版、WSL上のLinux付属のものなど各種あるようです。これを利用してバッチをファイルを生成しても目的は達せられそうです。

ID_20150222
質問者

お礼

ご指摘ありがとうございます。 完全に忘れていました。 pasteも試してみました。 ここに書かれているコードもとても参考になりました。 ありがとうございました。

その他の回答 (1)

  • wek00
  • ベストアンサー率61% (91/147)
回答No.1

sakura editorなどの矩形選択・編集機能があるエディタで ren 123.txt ABC.txt ren 456.txt DEF.txt ren 789.txt GHI.txt という内容のバッチファイルを作ればいいのではないでしょうか。 表計算ソフトに読み込んで整形しタブ区切りテキストで保存するとかカンマ区切りテキストで保存してメモ帳でカンマ等の不要な文字をスペースに置換or消去といった方法でも作れます。 バッチファイルは詳しくありませんが、スクリプト的にやるなら 二重forループで、 一段目のforはno1.txtを一行づつ読み、行数をカウントする。 二段目のforはno2.txtを一行づつ読み、行数をカウントし、 一段目と二段目の行数が一致する場合のみ処理を実行し二段目を終了する、 という感じでできないでしょうか。(この方法は1000行のリストで500000回くらいループしほとんど読み捨てるので非効率ではあります) テストがてら、echoとリダイレクトで上で挙げた一行一ren文のバッチファイルを作ってみるのもいいでしょう。

ID_20150222
質問者

お礼

今後の参考にさせていただきます。 ありがとうございました。

関連するQ&A