- ベストアンサー
バッチファイルでサブディレクトリィにコピー
あるディレクトリィで以下のバッチファイルを実行し、サブディレクトリィの一番深い階層にあるフォルダに、同じファイル(zzz.txt)をコピーしようとネットで調べたりして、以下のバッチファイルを実行してもうまくいきません。どうしたらいいか教えてください。よろしくお願いします。 for /d %%d in (*) do cd %%d for /d %%a in (*) do copy zzz.txt "%%a\"
- みんなの回答 (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がある事 ・バッチファイルのあるフォルダの配下にサブフォルダがある事 で動かして下さい。 そのフォルダ配下にある一番深い階層を探しますが 同じ深さの階層が複数ある場合 全部の一番深い階層にコピーする仕様になっています。 なお、バッチの機能と標準のツールのみで この処理を行ないたい場合や もっとエレガントな記述を所望の際は 上級者の回答をお待ち下さい。 当方、下級者なので。
その他の回答 (1)
xcopyを使うのではだめなんでしょうか?
お礼
さっそくの回答ありがとうございます。 バッチファイルにあまり詳しくないので、見よう見まねでやってます。 XCOPYでサブディレクトリィの一番深い階層を指定して コピーすることができるのか、自分なりに調べてみます ありがとうございました
お礼
RURUFOU様ありがとうございます。 現在、自宅のネット環境がないためご返事が遅れて申し訳ありませんでした。 職場でダウンロードして試させていただきます。 RURUFOU様”下級者”とはとんでもないです。 UNIX系ツールを使えるなんて自分には想像もできない世界です。 ありがとうございました。
補足
RURUFOU様、今確認しました。 気持ちよく各フォルダにコピーしていきました。 ありがとうございます。 さっそく使わせていただきます。