Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在xcopy中排除多个文件扩展名_Batch File_Cmd_Xcopy - Fatal编程技术网

Batch file 在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中排除几个扩展。我不知道它们可能存在于哪个文件夹/目录中

下面是我正在使用的命令:

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命令列出文件并使用命令修饰符检查扩展名是否有效会更安全。