我有一个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
。
有4000个MainSub目录,每个MainSub目录中有10000个子目录。
我想要一个批处理文件,它从MAINUB目录下的SUB1,SUB2 ...复制这些文件...
示例:
D:\ FILES \ MAINSUB1 \从其SUBS进入它的所有文件..
D:\ FILES \ MAINSUB2 \从其SUBS进入它的所有文件..
....所有4000个MAINSUB目录
我还希望它能够提示我以0-4格式添加DDMMYYYY和NUMBER格式的日期。
答案 0 :(得分:0)
这将处理文件的移动(如果从命令行使用,则将%%替换为%)。
for /D %%f in ("d:\files\*") do for /D %%g in ("%%~ff\*") do move "%%~fg\*" "%%~ff"
不确定添加时间戳的位置。根据需要进行调整
编辑 - 以适应评论
@echo off
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