任何人都可以帮我创建批处理文件,将* .xml文件从X文件夹移动到YYYY_MM文件夹,基于Month&年日期修改后的xml文件?
我不确定要把什么放在循环中。
@echo off
echo Date is %Date%
dir /od/b "C:\Users\*.xml" > test.log
for /F %%f in (test.log) DO
(
)
起初我想把set var = %%~tf
放在循环中,以便稍后我可以使用var上的子字符串来获取月份和年份,我可以根据它将xml文件移动到YYYY_MM文件夹,但似乎是不工作。
答案 0 :(得分:2)
试试这个[不需要 ROBOCOPY ]:
@echo off
set "src=C:\test"
set "dest=C:\test"
for %%F in ("%src%\*") do (
for /f "tokens=1,2,3 delims=/ " %%A in ("%%~tF") do (
if not exist "%dest%\%%C_%%A" mkdir "%dest%\%%C_%%A"
move "%%~fF" "%dest%\%%C_%%A"
)
)
答案 1 :(得分:0)
对于任何想要移动子目录的人,添加到r3ap3r的答案,这是一个解决方案。基本上只需使用/ d标志添加另一个for循环来遍历子目录:
@echo off
set "src=..\"
set "dest=..\archive"
for %%F in ("%src%\*") do (
for /f "tokens=1,2,3 delims=/ " %%A in ("%%~tF") do (
if not exist "%dest%\%%C_%%A" mkdir "%dest%\%%C_%%A"
move "%%~fF" "%dest%\%%C_%%A"
)
)
for /d %%D in ("%src%\*") do (
for /f "tokens=1,2,3 delims=/ " %%A in ("%%~tD") do (
if not exist "%dest%\%%C_%%A" mkdir "%dest%\%%C_%%A"
move "%%~fD" "%dest%\%%C_%%A"
)
)