2013-05-16 66 views
1

我想使用批處理文件將其置於默認文件夾中,但帳戶名稱位於文件夾中間。有什麼腳本我可以在DOS命令提示符下使用?DOS批處理文件 - 將基於文件名的文件複製到默認文件夾中

888123_AAAA_20130313.pdf 
888123_BBBB_20130313 (2).pdf 
888123_CCCC_20130313_2.pdf 
777456_AAAA_20130313.pdf 
777456_BBBB_20130313 (2).pdf 
777456_CCCC_20130313_2.pdf 

默認文件夾:

999-888123-03 
666-777456-01 
+0

什麼做你的意思嗎?哪個文件夾到哪個文件夾? – Raptor

+0

你想放哪裏?請解釋。 – Endoro

+0

這些都是.pdf文件嗎?他們總是以5位數字開頭嗎?他們都在同一個目錄嗎?與文件相關的默認文件夾在哪裏?請澄清您的帖子。 –

回答

0
@echo off 
setlocal EnableDelayedExpansion 

rem Create the list of default folders 
set folder[888123]=999-888123-03 
set folder[777456]=666-777456-01 

rem Copy the files 
for /F "tokens=1* delims=_" %%a in ('dir /B /A-D *.pdf') do (
    copy "%%a_%%b" "!folder[%%a]!" 
) 

編輯:下面的版本不需要初始化默認的文件夾列表:

@echo off 
for /F "tokens=1* delims=_" %%a in ('dir /B /A-D *.pdf') do (
    for /D %%d in (*_%%a_*) do (
     copy "%%a_%%b" "%%d" 
    ) 
) 
+0

很多感謝!!!!! – user2389248

+0

如果文件夾不在同一個驅動程序中,我如何編輯? – user2389248

+0

如果_all folders_位於同一個驅動器(不同於文件的驅動器)中,只需將其插入目標文件夾的willd卡(名稱)。如果每個目標文件夾可能位於不同的驅動器中,請使用帶有完整文件夾名稱的第一個版本。 – Aacini

相關問題