Batch file 在xcopy中排除多个文件扩展名
我想从xcopy中排除几个扩展。我不知道它们可能存在于哪个文件夹/目录中 下面是我正在使用的命令:Batch file 在xcopy中排除多个文件扩展名,batch-file,cmd,xcopy,Batch File,Cmd,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选项非常差。它实际上并不排除具有给定扩展名的文件
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,它也将被排除 有几种方法可以克服这一问题,我想向您展示其中一些方法: 使用及其/XF选项: 机器人副本C:\test1 C:\test2/S/XO/XF*.txt*.exe 使用a和xcopy/L创建a以预筛选文件: 设置/A计数=0 对于/F delims=%%F in' rem///列出不带“/L”复制的文件;删除摘要行:^&^ cd/D C:\test1^&^&xcopy/L/R/D/I/S/Y。C:\test2^|查找\ ”“是吗 rem//检查每个文件的文件扩展名: 如果/I不%%~xF==.txt如果/I不%%xF==.exe rem//创建目标目录,隐藏潜在错误消息: 2> nul mkdir C:\test2\%%~F\。。 rem//实际复制文件,隐藏摘要行: >nul copy/Y C:\test1\%%~F C:\test2\%%~F&& rem//返回当前复制的文件: 设置/A计数+=1&回显%%F || rem//发生错误时返回消息: >&2回显错误:无法复制%%~F! 已复制回显%COUNT%文件^s^。
xcopy exclude开关仅接受从何处读取要排除的元素列表的文件。创建文件或使用robocopy和/xf开关xcopy的/EXCLUDE选项并没有真正实现您想要的功能,它不排除扩展名为.txt和.exe的文件,它排除所有在任何位置的完整路径包含.txt或.exe的项目;例如,有一个源文件C:\test1\my.txt.files\file.ext,它也将被排除…我同意@aschipfl。使用FOR命令列出文件并使用命令修饰符检查扩展名是否有效会更安全。