复制除包含“skipthisfolder.txt”文件的文件夹以外的所有文件夹

时间:2012-11-08 20:26:22

标签: batch-file vbscript copy directory

我想做一个执行以下操作的脚本:

  • COPY从“D:\”到“F:\”的所有文件夹和所有文件 但
  • 跳过包含“skipthisfolder.txt”文件的所有文件夹

我应该使用哪种脚本语言? (为了在Windows中轻松运行它,没有任何第三方软件?)我想到了.BAT或VBS。

1 个答案:

答案 0 :(得分:3)

您可以使用CMD批处理文件,如下所示:

@echo off
for /r D:\ %%a in (.) do (
  IF NOT EXIST "%%~fa\skipthisfolder.txt" XCOPY "%%~fa" "F:%%~pna"
)

编辑:如果您还需要在找到skipthisfolder.txt文件时跳过子文件夹,那么这可能是一个解决方案:

@setlocal enableextensions enabledelayedexpansion
@echo off

set skip=@

for /r D:\ %%a in (.) do (
  echo %%a | findstr /c:"!skip!" > nul
  if !errorlevel!==1 IF EXIST "%%~fa\skipthisfolder.txt" set skip=%%~dpna
  echo %%a | findstr /c:"!skip!" > nul
  if !errorlevel!==1 XCOPY /D "%%~fa" "F:%%~pna"
)
endlocal