フォルダーの場所のリストがあり、そこからこれらの場所に含まれるすべてのファイルをコピーしたいと考えています。フォルダーの場所のリストは、テキスト ファイル (.txt) 内の別の行に保存されています。すべてのファイルを同じ場所にコピーする必要があります。
このフォルダーのリストとコマンドプロンプトのコピー機能を組み合わせて使用して、この演習を完了するにはどうすればよいですか?
答え1
次のようなディレクトリのリストを含む同様の内容のファイルを考えてみます。
c:
c:\users
c:\anyotherfolder
xcopy
ループ内ではfor
うまくいきます :)
for /f %a in (list.txt) do xcopy /e %a\* c:\destination_folder\
(ディレクトリツリー全体をコピーすることによって( による/e
) )
%
別のファイルに保存して実行したい場合は、変数名にextra を追加する必要があります.bat
。
答え2
私は Elvins コードを採用し、それを少し改良して、フォルダーのパスと名前にスペースが含まれる問題を解決しました。
For Do コマンドはフォルダー パスのソースとして CSV ファイルを使用するようになったため、"delims=,"
For コマンド内にオプションを含める必要がありました。
for /f "delims=," %a in (D:\Batch_Files\Test_Bench\Folders_List.csv) do copy "%a\*" D:\Batch_Files\Test_Bench\Paste_All_The_Files_Here
カンマで区切られたレコードにより、For /f
スペースを含む場所にアクセスできるようになりましたが、トークンが%a\*
" " で囲まれている場合に限られます。