2014-04-19 24 views
0

我製作了一個腳本,可以創建4個文件夾圖像,文檔,程序和其他。該腳本查看選定的目錄並將文件相應地複製到文件夾,但我的問題是如何限制複製到指定文件夾的文件不復制到「其他」文件夾?限制重複副本的批處理腳本

下面是腳本的一部分:

:run1 

mkdir %var2%\%1\Images 

copy "%var%\*.jpg" "%var2%\%1\Images" 

mkdir %var2%\%1\Documents 

copy "%var%\*.docx" "%var2%\%1\Documents" 

mkdir %var2%\%1\Programs 

copy "%var%\*.exe" "%var2%\%1\Programs" 

mkdir %var2%\%1\Other 

copy "%var%" "%var2%\%1\Other" 

goto complete 
+0

你想拷貝到'Other'文件夾中? – foxidrive

+0

剩下的其他文件,不符合圖像,文檔和程序文件夾的類別 – user3112130

回答

0

這種事情應該工作:

:run1 

pushd "%var2%" 

for %%a in (Images Documents Programs Other) do mkdir "%~1\%%~a" 2>nul 

for %%a in (jpg png bmp tif gif) do (
    copy "*.%%a" "%~1\Images" 
    attrib +h "*.%%a" 
) 

for %%a in (doc docx txt pdf) do (
    copy "*.%%a" "%~1\Documents" 
    attrib +h "*.%%a" 
) 

for %%a in (exe com bat cmd) do (
    copy "*.%%a" "%~1\Programs" 
    attrib +h "*.%%a" 
) 

    copy "*.*" "%~1\Other" 
    attrib -h "*.*" 

popd 
goto complete 
0

這種任務(和備份過程)的是爲創作的原因文件的歸檔屬性。

:run1 

    attrib +a "%var%\*" 

    xcopy /i /m "%var%\*.jpg" "%var2%\%1\Images" 
    xcopy /i /m "%var%\*.docx" "%var2%\%1\Documents" 
    xcopy /i /m "%var%\*.exe" "%var2%\%1\Programs" 
    xcopy /i /m "%var%\*"  "%var2%\%1\Other" 

goto complete 

attrib +a將設置存檔屬性。 xcopy的/i開關將處理目錄創建,並且/m要求xcopy僅複製具有存檔屬性集的文件,並且在複製文件時刪除該屬性。這樣,最後一個命令將只複製未複製的文件。