• 締切済み

【バッチ】外部リストを参照したコピー処理について

バッチの作成(DOSコマンド)で質問です。 今、フォルダ(とサブフォルダ、ファイル)をコピーするバッチを作成していますが、コピー対象のフォルダが複数あり今後も増える可能性があるので外部リスト化しようと下記のようなバッチとリストファイルを作成ました。 【バッチの記述(抜粋)】 for /f %%i in (リストファイル) do ( xcopy /i /e /q /y /r /v "%%i\*" "コピー先フォルダ\%%i" ) 【リストファイルの記述】 \\A\1\2\3\4 \\B\1\2\3\4 \\C\1\2\3\4 上記でリストにあるフォルダのコピーはできるのですが、これだとリスト内の全フォルダがコピー対象になってしまいます。 このリストファイルは似た処理を行う別のバッチでも参照させたく、またバッチ毎に参照するパスを分けたいのです。 (リストファイルを分ければ簡単ですが、メンテナンスをラクにしたくて・・) 例えば下記のようにラベルを付与し、ラベルから次のラベルまでを対象にする、などです。 【リストファイルの記述】 :bat1 \\A\1\2\3\4 \\B\1\2\3\4 \\C\1\2\3\4 :bat2 \\D\1\2\3\4 \\E\1\2\3\4 \\F\1\2\3\4 :bat3 \\G\1\2\3\4 \\H\1\2\3\4 \\I\1\2\3\4 何かいい方法はありますでしょうか?

みんなの回答

回答No.3

失礼な表現、記載、誤記等ありましたらご容赦ください。 小生、コマンドプロンプトのプロではありません。 コマンドプロンプトの達人に期待しますが直接的な回答でないものも含みますが思いつくのは以下くらい 1.カレントディレクトリーは基本そのバッチファイルが存在するところとして動作するので必要な場所にコピーして実行する 2.対応策は、コピーする元データフォルダ名を入力するステップを前に入れる === dir /w set /p FOLDER_NAME_INPUT="フォルダー名を入力?" === 利用する時は%FOLDER_NAME_INPUT% 3.リダイレクト機能を利用してファイル名テキストファイルから呼び出して繰り返す。 set FAILE_PASS 「%FILE_PASS% << failepass.txt」をforで繰り返す。 多分出来ると思うがEOF(End Of File)まで繰り返すと思う。 4.for /r /d /fを組み合わせる。(出来るかどうかデバッグが必要…) 5.メニュー化して機能を再分化して実行させる。 以上

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.2

FOR IN ~ DO ~ あとは自分で検索してみましょう

関連するQ&A