-1
我有幾個擴展名,我想從xcopy中排除。我不知道可能存在的文件夾/目錄。在xcopy中排除多個文件擴展名
下面是命令我使用:
xcopy /r /d /i /s /y C:\test1 C:\test2 /exclude:.txt+.exe
這個映幫助?
我有幾個擴展名,我想從xcopy中排除。我不知道可能存在的文件夾/目錄。在xcopy中排除多個文件擴展名
下面是命令我使用:
xcopy /r /d /i /s /y C:\test1 C:\test2 /exclude:.txt+.exe
這個映幫助?
你所尋找的是這樣的:
xcopy /R /D /I /S /Y /EXCLUDE:exclude.txt "C:\test1" "C:\test2"
與
exclude.txt
以下內容
一起:
.txt .exe
然而,xcopy
的/EXCLUDE
選擇是非常差。它不會真正排除具有給定擴展名的文件,它實際上排除了全路徑在任何位置包含.txt
或.exe
的所有項目。假設有一個源文件C:\test1\my.txt.files\file.ext
,它也將被排除。
有幾種方法來解決這個問題,其中一些我想告訴你:
使用robocopy
command及其/XF
選項:
robocopy "C:\test1" "C:\test2" /S /XO /XF "*.txt" "*.exe"
創建batch-file ,使用for /F
loop以及xcopy /L
對文件進行預過濾:
set /A "COUNT=0"
for /F "delims=" %%F in ('
rem/ // List files that would be copied without `/L`; remove summary line: ^&^
xcopy /L /R /D /I /S /Y "C:\test1" "C:\test2" ^| find ".\"
') do (
rem // Check file extension of each file:
if /I not "%%~xF"==".txt" if /I not "%~xF"==".exe" (
rem // Create destination directory, hide potential error messages:
2> nul mkdir "C:\test2\%%~F\.."
rem // Actually copy file, hide summary line:
> nul copy /Y "C:\test1\%%~F" "C:\test2\%%~F" && (
rem // Return currently copied file:
set /A "COUNT+=1" & echo(%%~F
) || (
rem // Return message in case an error occurred:
>&2 echo ERROR: could not copy "%%~F"!
)
)
)
echo %COUNT% file^(s^) copied.
'xcopy' exclude switch只接受從哪裏讀取要排除的元素列表中的文件。創建文件或使用'robocopy'和'/ xf'開關 –
優秀..!完美的作品。非常感謝你的幫助..! – user2817712
'xcopy'的'/ EXCLUDE'選項並沒有真正達到你想要的效果,它不排除擴展名爲'.txt'和'.exe'的文件,它排除了全路徑包含'.txt'的所有項目或'.exe'在任何位置;例如,有一個源文件'C:\ test1 \ my.txt.files \ file.ext',它也將被排除... – aschipfl