批处理文件循环以获取目录中除特定文件夹之外的所有文件夹

时间:2011-07-19 19:05:17

标签: batch-file cmd directory

想知道在单个批处理文件中执行此操作的最佳方法。我有一个名为C:\ Program \ Foo的文件夹,我想抓取除foo里面的测试文件夹之外的所有文件夹,我想将xcopy写入D:\所以在D:\ foo中会有但没有测试文件夹

我是否有办法遍历每个文件夹并检查某个名称是否包含?

使用/ Exclude意味着我需要一个带有“Testing”的额外文本文件

3 个答案:

答案 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文件名。