0

我有一个 Windows 目录,其中有 4000 个主要子目录,在这些主要子目录中,我有 4000 个子目录,其中有大约 20 个文件,每个文件都有语法File_CreationDate_NUMBER_name.ext

例子:

F:\DIR\MAINSUB1\SUB2\file_date_number*.rar

F:\DIR\MAINSUB1\SUB3\file1_date_number*.img

F:\DIR\MAINSUB1\SUB3\file2_date_*.txt .... 直到 400 个 SUB 目录然后

F:\DIR\MAINSUB2\SUB1\file2_date_number*.txt

F:\DIR\MAINSUB2\SUB2\file2_date_number*.timg

F:\DIR\MAINSUB2\SUB3\file2_date_*.html

MainSub 目录有 4000 个,每个 MainSub 目录中有 10000 个子目录。

我想要一个批处理文件,它从 MAINSUB 目录下的 SUB1、SUB2 ...复制这些文件...

例子:

D:\FILES\MAINSUB1\所有文件从它的 SUBS 到里面..

D:\FILES\MAINSUB2\所有文件从它的 SUBS 到它里面..

.... 对于所有 4000 个 MAINSUB 目录

我还希望它提示我以 DDMMYYYY 和 NUMBER 格式从 0-4 添加日期。

4

1 回答 1

0

这将处理文件的移动(如果从命令行使用,请将 %% 替换为 %)。

for /D %%f in ("d:\files\*") do for /D %%g in ("%%~ff\*") do move "%%~fg\*" "%%~ff"

不确定要在哪里添加时间戳。根据需要调整

编辑 - 以适应评论

@echo 关闭

setlocal enableextensions

rem from/where to copy
set "source=f:\dir"
set "target=d:\files"

set /p "df=date of files ? :"
set /p "nf=number ? :"

rem ensure final target directory exists
if not exist "%target%" mkdir "%target%"

rem do file copy
for /D %%f in ("f:\files\*") do (
    if not exist "%target%\%%~nxf" mkdir "%target%\%%~nxf" > nul
    for /D %%g in ("%%~ff\*") do (
        copy "%%~fg\*_%df%_%nf%*" "%target%\%%~nxf"
    )
)

endlocal
于 2013-11-07T19:45:35.403 回答