批处理 提取更新文件


如果您想要保持目录结构,即将提取的文件复制到目标目录中并保留其原始的子目录结构,您可以使用以下批处理脚本:

@echo off
set "source_directory=C:\path\to\source\directory"
set "destination_directory=C:\path\to\destination\directory"
set "start_date=2023-01-01"
set "end_date=2023-12-31"

for /R "%source_directory%" %%F in (*) do (
    for /F "tokens=1,* delims=\" %%A in ("%%~pnxF") do (
        for /F %%B in ("%%~tF") do (
            set "file_date=%%B"
            set "file_date=!file_date:~0,10!"
            if "!file_date!" geq "%start_date%" if "!file_date!" leq "%end_date%" (
                echo Copying "%%F"
                mkdir "%destination_directory%\%%A" 2>nul
                xcopy /Y "%%F" "%destination_directory%\%%A\"
            )
        )
    )
)

请按照以下步骤自定义脚本:

  1. source_directory 替换为要提取文件的源目录的路径。
  2. destination_directory 替换为要将文件复制到的目标目录的路径。
  3. start_dateend_date 替换为您想要的日期范围,格式为 “YYYY-MM-DD”。
  4. 保存脚本为 .bat 文件,例如 extract_files.bat
  5. 双击运行脚本,它将开始提取在指定日期范围内的文件并将其复制到目标目录中,并保持原始的子目录结构。

脚本中的 mkdir 命令用于在目标目录中创建与源目录相同的子目录结构,以保持文件的原始位置。2>nul 用于禁止在目录已存在时显示错误消息。

请注意,与上一个示例相比,此脚本在复制文件之前创建了目标目录中的子目录结构。这可能需要更长的时间,具体取决于源目录的大小和层次结构。在复制大量文件时,请耐心等待脚本完成执行。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注