finderhd, Применительно к моему скрипту, надо делать так:
Код:

Call :MyMove "C:\test\test1" "C:\test\test1" "report_stat" "*ReadUser.txt"
Call :MyMove "C:\test\test2" "C:\test\test2" "report_stat" "*ReadUser.txt"
Call :MyMove "C:\test\test3" "C:\test\test3" "report_stat" "*ReadUser.txt"
Или, в крайнем случае,
Код:

Call :MyMove "C:\test\test1" "C:\test\test1" "report_stat" "*.txt"
То есть пИшите маску до года и маску после года, скрипт из этого склеивает маску для нужного года.
Цитата finderhd:
Нужно чтобы создавались папки и в них перемещались файлы, у которых соответствующий год создания. »
|
Не понимаю еще раз: год в имени файла или надо вытянуть год из свойств файла? Ваш скрипт этого не делает, он берёт год по маске из имени файла. Иначе Ваш скрипт полностью не годится.
Кстати, вместо Robocopy вполне подойдёт Move
Код:

@Echo Off
FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "Year=%%d"
Set /A Year=%Year:~0,4%
rem Call :MyMove "Z:\Box_In" "Z:\Box_Out" "report_stat" "*ReadUser.txt"
Call :MyMove "C:\test\test1" "C:\test\test1" "report_stat" "*ReadUser.txt"
Call :MyMove "C:\test\test2" "C:\test\test2" "report_stat" "*ReadUser.txt"
Call :MyMove "C:\test\test3" "C:\test\test3" "report_stat" "*ReadUser.txt"
Exit /B 0
:MyMove
FOR /L %%i IN (0,-1,-1) DO (
Call Set /A Y=%Year%+%%i
Call 2>nul Md "%~2\%%Y%%"
Call Move /Y "%~1\%~3%%Y%%%~4" "%~2\%%Y%%\"
)
Exit /B