• ベストアンサー

バッチファイルでサブディレクトリィにコピー

あるディレクトリィで以下のバッチファイルを実行し、サブディレクトリィの一番深い階層にあるフォルダに、同じファイル(zzz.txt)をコピーしようとネットで調べたりして、以下のバッチファイルを実行してもうまくいきません。どうしたらいいか教えてください。よろしくお願いします。 for /d %%d in (*) do cd %%d for /d %%a in (*) do copy zzz.txt "%%a\"

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

  • ベストアンサー
  • RURUFOU
  • ベストアンサー率55% (5/9)
回答No.2

取りあえず動きましたので これでやってみてください。 で、標準環境で実現出来なかったので UNIX系ツールを使いました。 バッチを実行する前に http:// www.kt.rim.or.jp/%7ekbk/sed/onigsed-20091031.zip をダウンロード後、解凍してから ONIGSED.EXEを バッチファイルのあるフォルダか パスの通ったフォルダ(Windowsフォルダ等)に 保存して下さい。 続けて http:// www.longtail.co.jp/pck/pck2302.zip をダウンロード後、解凍してから UNIQ.EXEを バッチファイルのあるフォルダか パスの通ったフォルダ(Windowsフォルダ等)に 保存して下さい。 バッチファイルはこちらになります。 cd /d "%~dp0" for /f "delims=" %%0 in ('dir /ad /b /s ^| ONIGSED -n -e "s/[^\\]//g" -e "p" ^| sort ^| UNIQ') do set ichibanfukaiso=%%0 set ichibanfukaiso=%ichibanfukaiso:\=\\\(.*\)% for /f "delims=" %%0 in ('dir /ad /b /s ^| ONIGSED -n -e "/%ichibanfukaiso%/p"') do copy /y zzz.txt "%%0" 前提条件として ・バッチファイルのあるフォルダにZZZ.TXTがある事 ・バッチファイルのあるフォルダの配下にサブフォルダがある事 で動かして下さい。 そのフォルダ配下にある一番深い階層を探しますが 同じ深さの階層が複数ある場合 全部の一番深い階層にコピーする仕様になっています。 なお、バッチの機能と標準のツールのみで この処理を行ないたい場合や もっとエレガントな記述を所望の際は 上級者の回答をお待ち下さい。 当方、下級者なので。

boobou
質問者

お礼

 RURUFOU様ありがとうございます。  現在、自宅のネット環境がないためご返事が遅れて申し訳ありませんでした。  職場でダウンロードして試させていただきます。  RURUFOU様”下級者”とはとんでもないです。  UNIX系ツールを使えるなんて自分には想像もできない世界です。  ありがとうございました。

boobou
質問者

補足

RURUFOU様、今確認しました。 気持ちよく各フォルダにコピーしていきました。 ありがとうございます。 さっそく使わせていただきます。

その他の回答 (1)

noname#185852
noname#185852
回答No.1

xcopyを使うのではだめなんでしょうか?

boobou
質問者

お礼

さっそくの回答ありがとうございます。 バッチファイルにあまり詳しくないので、見よう見まねでやってます。 XCOPYでサブディレクトリィの一番深い階層を指定して コピーすることができるのか、自分なりに調べてみます ありがとうございました

関連するQ&A

専門家に質問してみよう