想知道在单个批处理文件中执行此操作的最佳方法。我有一个名为C:\ Program \ Foo的文件夹,我想抓取除foo里面的测试文件夹之外的所有文件夹,我想将xcopy写入D:\所以在D:\ foo中会有但没有测试文件夹
我是否有办法遍历每个文件夹并检查某个名称是否包含?
使用/ Exclude意味着我需要一个带有“Testing”的额外文本文件
答案 0 :(得分:1)
我不明白为什么你不能创建临时排除文件(使用临时文件夹):
@ECHO OFF
FOR %%F IN ("%TEMP%\exclude.txt") DO SET tmpf=%%~sF
ECHO Testing>%tmpf%\exclude.txt
XCOPY source destination /EXCLUDE:%tmpf%\exclude.txt other options
注意: XCOPY
无法将双引号识别为/EXCLUDE
选项中的路径分隔符,并且无法指定带空格的路径,这可能是Windows上的问题XP系统。可以通过将原始路径替换为仅由短名称组成的对应路径来解决此限制。这就是上面脚本中的FOR
循环对%TEMP%
文件夹的作用。
答案 1 :(得分:0)
您可以使用ROBOCOPY
吗?
ROBOCOPY C:\Program\Foo D:\ * /E /XD Test
/E
复制子文件夹和文件/XD
排除目录答案 2 :(得分:0)
使用EXCLUDE选项并将您的排除项放在该文件中。这将允许您排除整个目录。
http://www.pcreview.co.uk/forums/using-xcopy-backup-can-exclude-some-directories-t489674.html
xcopy“c:\ document and settings”“i:\ documents and settings \”/ s / d /EXCLUDE:c:\a.txt
a.txt包含
\ TEMP \ \临时互联网文件\
您可能需要使用较短的DOS文件名。