2014-10-10 151 views
0

我有很長的文件夾partail名稱列表(每個部分是唯一的特定文件夾);我想要做的是編寫一個批處理文件來遍歷每個文件夾中的每個子文件夾,將這些文件拖到該文件夾​​的根目錄,並在存在重複時替換這些文件(這裏有很多重複的內容,重新尋找刪除)。從CSV文件中的文件夾批空子文件夾

我已經使用了幾個批處理文件來移動這些文件夾並做其他事情,我只是無法讓代碼在清空子文件夾上工作。

批處理文件1(訪問CSV,調用其他批次做的工作):

@echo off 
FOR /F "tokens=1,3 delims=," %%G IN (Pt1Test.csv) DO call Empty1.bat %%G 

批處理文件2(應該是空的子文件夾,然後在沿着移動到下一個文件夾列表):

@echo off 
set _Uname=%1 
for /f "eol=: delims=" %%F in ('dir /b^|find "%_Uname%"') do <NEXT BIT I CAN'T FIGURE OUT> 

時遇到的問題越來越命令中主文件夾拉

我知道這個代碼的工作,當我把它直接進入DOS:

for /r %f in (*) do @move /y "%f" 

但我不能有一個對,做對,做,我不希望有那種類型對於5000左右的文件夾我想刪除重複。

感謝您的幫助!

泰勒

+0

'並替換文件,如果有重疊'< - 這是什麼意思? – foxidrive 2014-10-10 16:00:28

+0

編輯澄清。我的意思是說如果有重複(覆蓋)替換文件,@move命令中的/ y會執行此操作。 – Tyler 2014-10-10 16:33:54

+0

文件二進制文件是否重複,並且您想刪除除一個副本之外的所有文件?這是練習的主要目的嗎?還是他們有相同的文件名,你想只保留一個副本? – foxidrive 2014-10-11 02:29:54

回答

0

是否有1,3理由嗎?您的示例中沒有使用3(%% H)。

這個怎麼樣?在你的第二個命令之前,只需轉到每個目錄並返回。

@echo off 
FOR /F "tokens=1,3 delims=," %%G IN (Pt1Test.csv) DO (
    pushd *%%G* 
    for /r %%a in (*) do @move /y "%%a" 
    popd 
) 
+0

這工作完美,謝謝!我不需要1,3,只有1,忘記改變從早期的腳本。 – Tyler 2014-10-14 15:25:45

相關問題