請問 如何複製一個檔案 到很多目錄下

請問 如何複製一個檔案 到很多目錄下

例如 我要把一個檔案 abc.txt 複製到 1000 個目錄下
不管是 copy 或 xcopy 好像都不允許 [destination] 使用萬用字元

copy abx.txt \????-aaa\ <-----不允許
copy abx.txt \*-aaa\ <-----不允許


難道只能 這樣打 1000行...

copy abc.txt \0001-aaa\
copy abc.txt \0002-aaa\
copy abc.txt \0003-aaa\
..
..


請問各位 要如何下指令?
或是有其他軟體可以做到 ?
文章關鍵字
DANNY-HSU wrote:
請問 如何複製一個檔...(恕刪)

會寫batch 檔的高手能!'
DANNY-HSU wrote:
請問 如何複製一個檔...(恕刪)


資料夾有規則嗎?

如果以這個案例
貼到excel拉到1000(我以100為範例不然太長了)
再複製貼到記事本就可以了

copy abc.txt \0001-aaa\
copy abc.txt \0002-aaa\
copy abc.txt \0003-aaa\
copy abc.txt \0004-aaa\
copy abc.txt \0005-aaa\
copy abc.txt \0006-aaa\
copy abc.txt \0007-aaa\
copy abc.txt \0008-aaa\
copy abc.txt \0009-aaa\
copy abc.txt \0010-aaa\
copy abc.txt \0011-aaa\
copy abc.txt \0012-aaa\
copy abc.txt \0013-aaa\
copy abc.txt \0014-aaa\
copy abc.txt \0015-aaa\
copy abc.txt \0016-aaa\
copy abc.txt \0017-aaa\
copy abc.txt \0018-aaa\
copy abc.txt \0019-aaa\
copy abc.txt \0020-aaa\
copy abc.txt \0021-aaa\
copy abc.txt \0022-aaa\
copy abc.txt \0023-aaa\
copy abc.txt \0024-aaa\
copy abc.txt \0025-aaa\
copy abc.txt \0026-aaa\
copy abc.txt \0027-aaa\
copy abc.txt \0028-aaa\
copy abc.txt \0029-aaa\
copy abc.txt \0030-aaa\
copy abc.txt \0031-aaa\
copy abc.txt \0032-aaa\
copy abc.txt \0033-aaa\
copy abc.txt \0034-aaa\
copy abc.txt \0035-aaa\
copy abc.txt \0036-aaa\
copy abc.txt \0037-aaa\
copy abc.txt \0038-aaa\
copy abc.txt \0039-aaa\
copy abc.txt \0040-aaa\
copy abc.txt \0041-aaa\
copy abc.txt \0042-aaa\
copy abc.txt \0043-aaa\
copy abc.txt \0044-aaa\
copy abc.txt \0045-aaa\
copy abc.txt \0046-aaa\
copy abc.txt \0047-aaa\
copy abc.txt \0048-aaa\
copy abc.txt \0049-aaa\
copy abc.txt \0050-aaa\
copy abc.txt \0051-aaa\
copy abc.txt \0052-aaa\
copy abc.txt \0053-aaa\
copy abc.txt \0054-aaa\
copy abc.txt \0055-aaa\
copy abc.txt \0056-aaa\
copy abc.txt \0057-aaa\
copy abc.txt \0058-aaa\
copy abc.txt \0059-aaa\
copy abc.txt \0060-aaa\
copy abc.txt \0061-aaa\
copy abc.txt \0062-aaa\
copy abc.txt \0063-aaa\
copy abc.txt \0064-aaa\
copy abc.txt \0065-aaa\
copy abc.txt \0066-aaa\
copy abc.txt \0067-aaa\
copy abc.txt \0068-aaa\
copy abc.txt \0069-aaa\
copy abc.txt \0070-aaa\
copy abc.txt \0071-aaa\
copy abc.txt \0072-aaa\
copy abc.txt \0073-aaa\
copy abc.txt \0074-aaa\
copy abc.txt \0075-aaa\
copy abc.txt \0076-aaa\
copy abc.txt \0077-aaa\
copy abc.txt \0078-aaa\
copy abc.txt \0079-aaa\
copy abc.txt \0080-aaa\
copy abc.txt \0081-aaa\
copy abc.txt \0082-aaa\
copy abc.txt \0083-aaa\
copy abc.txt \0084-aaa\
copy abc.txt \0085-aaa\
copy abc.txt \0086-aaa\
copy abc.txt \0087-aaa\
copy abc.txt \0088-aaa\
copy abc.txt \0089-aaa\
copy abc.txt \0090-aaa\
copy abc.txt \0091-aaa\
copy abc.txt \0092-aaa\
copy abc.txt \0093-aaa\
copy abc.txt \0094-aaa\
copy abc.txt \0095-aaa\
copy abc.txt \0096-aaa\
copy abc.txt \0097-aaa\
copy abc.txt \0098-aaa\
copy abc.txt \0099-aaa\
copy abc.txt \0100-aaa\
將藍色文字貼成 test.bat, 放到你準備拷貝的工作目錄


@echo on
del dir.txt
del dir_result.txt
del dir_result.bat


dir * |find "DIR" > dir.txt
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('type dir.txt') do (
set line=%%a
echo !line! >> dir_result.txt
set line1=!line:~39!
If "!line1!" neq "." (
If "!line1!" neq ".." (
echo copy %1 "!line:~39!" >> dir_result.bat
)
)
)

call dir_result.bat

del dir.txt
del dir_result.bat
del dir_result.txt


執行 命令

test.bat abc.txt

會將該執行目錄內第一層的子目錄列出, 將 abc.txt 以 copy 的命令複製
ikki11110110111 wrote:
將藍色文字貼成 te...(恕刪)

若真oK 我也只能回敬!
BAT真的要失傳了: 大大有真本事硬功夫!
ikki11110110111 wrote:
將藍色文字貼成 te...(恕刪)


想當年DOS時代考電腦硬體裝修技術士執照
寫批次檔也沒這麼深奧




ikki11110110111 wrote:
將藍色文字貼成 test...(恕刪)


感謝 ikki11110110111 大大,真是太強了,

可以再幫我修改一下嗎, 我是想要複製到 第2層目錄底下,
有辦法做到嗎 ?

copy abc.txt \0001-aaa\GG1
copy abc.txt \0001-aaa\GG2
copy abc.txt \0001-aaa\GG3

copy abc.txt \0002-aaa\GG1
copy abc.txt \0002-aaa\GG2
copy abc.txt \0002-aaa\GG3

copy abc.txt \0003-aaa\GG1
copy abc.txt \0003-aaa\GG2
copy abc.txt \0003-aaa\GG3



建立另外一個批次檔 test1.bat, 將藍色文字貼入存檔, 跟第一個 test.bat, abc.txt 放在一起


@echo on
del dir_result1.txt
del dir1.txt
del dir_result1.bat

echo @echo on >> dir_result1.bat
dir * |find "DIR" > dir1.txt
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('type dir1.txt') do (
set line=%%a
echo !line! >> dir_result1.txt
set line1=!line:~39!
If "!line1!" neq "." (
If "!line1!" neq ".." (
echo copy test.bat "!line:~39!" >> dir_result1.bat
echo copy %1 "!line:~39!" >> dir_result1.bat
echo cd "!line:~39!" >> dir_result1.bat
echo call test.bat %1 >> dir_result1.bat
echo del test.bat >> dir_result1.bat

echo cd .. >> dir_result1.bat
)
)
)

call dir_result1.bat

del dir_result1.txt
del dir1.txt
del dir_result1.bat


呼叫 test1.bat abc.txt 就會把 abc.txt 跟 test.bat 放到 tier2 的目錄 逐步執行 test.bat abc.txt

ikki11110110111 wrote:
建立另外一個批次檔...(恕刪)


剛剛測試一下,真的可以用, 可以順利的把檔案複製到第2層目錄,
真是太感謝了

還剩一個問題,就是 第一層目錄 也會有 abc.txt , 只能手動刪除? 或是還能修改 ?
test1.bat 內容更新


@echo on
del dir_result1.txt
del dir1.txt
del dir_result1.bat

echo @echo on >> dir_result1.bat
dir * |find "DIR" > dir1.txt
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('type dir1.txt') do (
set line=%%a
echo !line! >> dir_result1.txt
set line1=!line:~39!
If "!line1!" neq "." (
If "!line1!" neq ".." (
echo copy test.bat "!line:~39!" >> dir_result1.bat
echo copy %1 "!line:~39!" >> dir_result1.bat
echo cd "!line:~39!" >> dir_result1.bat
echo call test.bat %1 >> dir_result1.bat
echo del test.bat >> dir_result1.bat
echo del %1 >> dir_result1.bat
echo cd .. >> dir_result1.bat
)
)
)

call dir_result1.bat

del dir_result1.txt
del dir1.txt
del dir_result1.bat


使用方法不變
文章分享
評分
評分
複製連結

今日熱門文章 網友點擊推薦!