- 締切済み
ファイルリストを元に階層を保ったファイルコピー
コピーしたいファイルのフルパスが書かれているtxtファイルを元に、復数ファイルのコピーを行いたいです。 下記の質問を元にbatを作成しましたが、階層は保たれないようで…。 xcopyでならいけるかと修正してみたものの、フルパスのせいか希望する動作になりませんでした。 http://okwave.jp/qa/q5030613.html ディレクトリ構造を保ちながらコピーできるbatの作り方、または上記可能なフリーソフトをご教示いただきたいです。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4900/10358)
>コピー先のフォルダにも同じようにフォルダとファイルを作成してある状態でbatをたたくとコピー出来ました。 なるほど。 しかしそれでは、「%%~A部分でエラー」でなく、「copy %A% %B%の部分でエラー」ではないのですか? echo F| xcopy %A% %B% に変えてみてください。
- notnot
- ベストアンサー率47% (4900/10358)
>ですが、%%~A部分でエラーになり上手く処理されませんでした。 まるごとBATファイルにするとエラーにはなりません。 どこか修正したのでしょうが、修正後の物を全部載せてください。
- notnot
- ベストアンサー率47% (4900/10358)
C:\foo\bar\aaaa.txt C:\foo\baz\bbbb.txt C:\foo\bam\mem\ccc.txt と書いてあったとして、それらを、 C:\hoge\bar\aaaa.txt C:\hoge\baz\bbbb.txt C:\hoge\bam\mem\ccc.txt にコピーするようなイメージでしょうか? for /f "delims=" %%A in (filelist.txt) do call :sub "%%~A" goto :EOF :sub set A=%1 set B=%A:C:\foo=C:\hoge% copy %A% %B% goto :EOF
お礼
回答ありがとうございます。ですが、%%~A部分でエラーになり上手く処理されませんでした。いただいたコードをそのままbatファイルにしたのですが使用方法違いますでしょうか?
- masatsan
- ベストアンサー率15% (179/1159)
list.txt j:\test\1 j:\test\2 bat FOR /F %%i in (list.txt) do xcopy /e %%i "j:\test\target" バッチはリンク先を参考にさせてもらいました。
お礼
回答ありがとうございます。ですが試したみたところ、拡張子までのフルパスで書いた(それぞれ階層が異なる)複数ファイルのコピーはできないようでした…。
お礼
ありがとうございます、お手数おかけします。 修正したのはフォルダの名前のみです。 改めて試した所、コピー先のフォルダにも同じようにフォルダとファイルを作成してある状態でbatをたたくとコピー出来ました。 ですが、私が行いたいのは空のフォルダへリストに書いたファイルたちを階層を保ってコピーなのです…。 言葉足らずで申し訳ありません。よろしくお願いいたします。