如果您想要保持目录结构,即将提取的文件复制到目标目录中并保留其原始的子目录结构,您可以使用以下批处理脚本:
@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\"
)
)
)
)
请按照以下步骤自定义脚本:
- 将
source_directory替换为要提取文件的源目录的路径。 - 将
destination_directory替换为要将文件复制到的目标目录的路径。 - 将
start_date和end_date替换为您想要的日期范围,格式为 “YYYY-MM-DD”。 - 保存脚本为
.bat文件,例如extract_files.bat。 - 双击运行脚本,它将开始提取在指定日期范围内的文件并将其复制到目标目录中,并保持原始的子目录结构。
脚本中的 mkdir 命令用于在目标目录中创建与源目录相同的子目录结构,以保持文件的原始位置。2>nul 用于禁止在目录已存在时显示错误消息。
请注意,与上一个示例相比,此脚本在复制文件之前创建了目标目录中的子目录结构。这可能需要更长的时间,具体取决于源目录的大小和层次结构。在复制大量文件时,请耐心等待脚本完成执行。