1

我正在寻找批处理来查找文本文件中列出的所有文件夹并将其复制到指定位置。

例如有:

  1. Textfile.txt 内容:

    • 01
    • 02
    • 03
    • 04
    • 等等
  2. 带有子文件夹的头文件夹。

我正在寻找的文件夹(来自 Textfile.txt 的文件夹)可以放在每个子文件夹中。如果我想从 Textfile.txt 中查找文件夹并将其复制到指定位置。我需要从头文件夹中搜索所有子文件夹

示例文件夹树

  1. 主文件夹
    • 子文件夹(11st、12st、13st...)
    • 文件夹 (01, 02, 03, 04,)

请帮我建造那批。谢谢。

附加信息:

- 主文件夹(头文件夹)
  - 约翰(文件夹)
    - 01(文件夹)(可以为空,没有任何文件夹和文件)
      - 11st(文件夹)(可以是空白,没有任何文件夹和文件)
        - file1.txt(文件)
        - 文件 2.xls
      - 12 日
      - 13 日
    - 02
    - 03
    - 04
  - 托马斯
    - 05
      - 11 日
      - 12 日
      - 13 日
    - 06
  - 伊娃
  - 马丁
    - 07
      - 11 日
      - 12 日
      - 15 日
  - 乔治
    - 08

即使是空白,我也需要从 Textfile.txt 中查找并复制整个文件夹 01、02、03、04 等。

4

1 回答 1

0

以下应该在批处理文件中工作:

FOR /F %%F IN (Textfile.txt) DO xcopy /I /E "C:\Source\%%F" "D:\Dest\%%F"

您还可以应用更多开关:

  /C           Continues copying even if errors occur.
  /H           Copies hidden and system files also.
  /R           Overwrites read-only files.
  /Y           Suppresses prompting to confirm you want to overwrite an
               existing destination file.

更新

在您的特定情况下,当您拥有分散在子文件夹中的文件夹列表时,此脚本应该可以工作:

@echo off

set SRC_FOLDER="C:\Source"
set DST_FOLDER="C:\Destination"

REM this makes sure that if the first folder in list is empty - it is copied 
IF NOT EXIST %DST_FOLDER% MKDIR %DST_FOLDER%

REM loop through the items in list; use one per line 
REM for group match use <NAME>*
FOR /f %%F IN (%~dp0\Textfile.txt) DO (
   REM loop through all folders
   FOR /f "delims=" %%D IN ('DIR %SRC_FOLDER% /A:D /B') DO (
       REM loop through FOLDER/NAME* sub-folders
       FOR /f "delims=" %%G IN ('DIR %SRC_FOLDER%\"%%D\%%F" /A:D /B') DO (
          IF EXIST %SRC_FOLDER%\"%%D\%%G" XCOPY /I /E %SRC_FOLDER%\"%%D\%%G" %DST_FOLDER%\"%%~nG"
       )
       REM loop through all FOLDER subfolders to catch NAME subfolders 
       FOR /f "delims=" %%G IN ('DIR %SRC_FOLDER%\"%%D" /A:D /B') DO (
          IF "%%G" == "%%F" XCOPY /I /E %SRC_FOLDER%\"%%D\%%G" %DST_FOLDER%\"%%~nG"
       )
   )
)
  • 请注意,需要“delims=”参数来正确处理带有空格的路径。enter code here
于 2013-10-26T13:58:26.047 回答