Файл определенного месяца и года - PullRequest
0 голосов
/ 12 мая 2019

Я хотел бы создать пакетный сценарий Windows, который позволит мне записывать имена файлов данного каталога в текстовый файл, только если дата изменения имеет определенный месяц и определенный год.
Например, как я могу распечатать все файлы, измененные в мае 2018 года, из каталога C: \ tmp?

На данный момент я написал эту инструкцию:

FORFILES /P C:\tmp /C "cmd /c if @isdir==FALSE set fdate=@fdate& (call echo @path) >> file.txt" >NUL 2>&1

Я должен добавить эти условия:

if %fdate:~3,2%==05 if %fdate:~6,4%==2018

1 Ответ

0 голосов
/ 12 мая 2019

Я решил удалить свои комментарии и опубликовать соответствующие части в качестве ответа:

Если вы хотите ограничить вашу задачу использованием , вы можете попробовать что-то подобное из вашего, (который записывает file.txt в тот же каталог, что и ваш пакетный файл) :

@CD /D "C:\tmp"
@FORFILES /D 01/05/2018 /C "cmd /c if @isdir==FALSE FORFILES /D -31/05/2018 /M @file /C 0x22cmd /c if @isdir==FALSE Echo @fdate @ftime @path0x22" 2>nul >>"%~dp0file.txt"

Если вы хотите сделать свою командуболее эффективным, может быть лучшим вариантом, (следующая запись file.txt в текущий каталог) :

@For /F "Tokens=*" %%A In ('RoboCopy "C:\tmp" NULL /L /MaxAge:20180501 /MinAge:20180531 /NDL /NJH /NJS /NC /NS /TS')Do @Echo(%%A>>"file.txt"

Цикл Forтребуется только для удаления начального пробела из выходных данных, если вы не заботитесь об этом, вы можете просто использовать:

@RoboCopy "C:\tmp" NULL /L /MaxAge:20180501 /MinAge:20180531 /NDL /NJH /NJS /NC /NS /TS>"file.txt"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...