求助:我需要在下面這些檔案夾里面,分別拷貝另一個檔案夾"test"的檔案到里面去,如何實作?
目錄結構如下:
--------------------------------------------------------------
C盤下,假設有"abc"夾,在里面可能有1到n個檔案夾(具體檔案名未知,只知道前半部分是“aa bb cc”):
C:\abc\aa bb cc a1\
C:\abc\aa bb cc a1.2\
C:\abc\aa bb cc a1.4\
C:\abc\aa bb cc a1.某某\
C:\abc\aa bb cc b2.5\
C:\abc\aa bb cc b2.某某\
......
C:\abc\還有其他檔案夾,不用處理
檔案名后半部分是未知的,可能如上述,也可能更長,甚至還有空格,沒發現固定規律
我的思路是:
1.先獲取檔案夾的數量"n",變數名n
c:
cd "\abc"
dir /b "aa bb cc*" >c:\xx.txt
for /f %%i in ('type c:\xx.txt ^|find /c /v ""') do (set /a n=%%i)
2.獲取文本xx.txt的內容,并賦予每一行文本內容作為路徑變數“dir”
for /f "delims=" %%i in (c:\xx.txt) do set dir=%%i
3.根據n的數量來決定做幾次拷貝回圈
cd /d "%~dp0" 回到當前目錄
for /l %%a in (1,1,%n%) do xcopy /e/h/k/o/y "test" "C:\abc\%dir%\test\"
問題來了,
思路是這樣應該沒錯,但是一路執行下來肯定是不行的,
思路2的變數賦予,系統只是取了最后一次(最后一個檔案夾名)作為"dir"變數的內容,
思路3的拷貝回圈,變成執行n次拷貝"test"檔案夾內容到最后一個檔案夾去了,
并不是我要的分別拷貝到每一個檔案夾里面。
所以,路徑變數"dir"如何賦予才能關聯到拷貝回圈,實作分別拷貝檔案的要求?
uj5u.com熱心網友回復:
@echo offfor /f "delims=" %%i in ('dir /b /ad "C:\abc\aa bb cc *"') do (
xcopy /e/h/k/o/y "test" "C:\abc\%%i\test\"
)
已有高手解決!
uj5u.com熱心網友回復:
http://bbs.bathome.net/thread-49056-1-2.html這個帖子也是你發的吧
uj5u.com熱心網友回復:
是我發的,總共發了百度貼吧,CSDN,批處理之家那里回復最快,百度貼吧有個教了一個for /d 用法也很好
for /d %%a in ("C:\abc\aa bb cc *") do xcopy /e/h/k/o/y "test" "%%~fa\test\"
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/94134.html
標籤:一般軟件使用
