批處理命令進行文件夾及子級文件的復制


場景1-單目錄復制

將目錄dir下的所有文件復制到目錄dir2下

bat復制

使用xcopy命令,具體可參考百度百科

@echo off
:: 要復制的文件夾
set SOUECE=F:\dir
:: 復制到的目錄
set DESTINATION=F:\dir2
xcopy %SOUECE% %DESTINATION%\ /s/y
pause

/s:復制目錄和子目錄,除了空的。
/y:取消提示,直接覆蓋

場景2-多目錄復制

目錄dir下有很多文件夾,每個文件夾下都有子文件夾dir3,現在要將dir目錄下所有文件夾里面的dir3里的文件復制到目錄dir2下

bat復制

使用for循環和xcopy
for循環的使用方式:for [參數] %%變量名 in (匹配符) do (執行的命令),do 里面的東西可以通過括號括起來,否則無法進行換行

@echo off
:: 要復制的文件夾
set SOUECE=F:\dir
:: 復制到的目錄
set DESTINATION=F:\dir2
for /d %%i in (%SOUECE%\*) do (
xcopy %%i\dir3 %DESTINATION%\ /s/y/i)
pause

for后面的/d表示遍歷當前路徑的文件夾下的文件夾,如果不加,會獲得dir目錄下的所有文件名

shell復制

使用shell中的cp命令

cp -r F:/dir/*/dir3/*  F:/dir2

使用shell進行復制,不用for循環,而且可以多次使用通配符

cp -r F:/dir/*/dir4/*/*/dir3/*  F:/dir2
cp -r F:/dir/*/dir4/*/*/dir3/*.txt  F:/dir2

注意

  1. for循環在cmd命令窗口中使用的時候,變量i%i表示,但是在cmd文件中保存后運行時,cnd文件里的i要用%%i表示
  2. 路徑中有中文的時候,可能會出現亂碼,可以嘗試轉換編碼格式,使用utf-8格式?使用ANSI格式?

參考文檔

https://www.cnblogs.com/xpwi/p/9626959.html
https://www.cnblogs.com/liangblog/p/9835940.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM