Я просто хочу знать:Пакетный файл, который удаляет файл, который последняя модификация не была сегодня
Как я могу удалить «log.txt», если последняя модификация не сегодня?
С пакетным файлом.
Я просто говорю здесь около 1 файла!
Я просто хочу знать:Пакетный файл, который удаляет файл, который последняя модификация не была сегодня
Как я могу удалить «log.txt», если последняя модификация не сегодня?
С пакетным файлом.
Я просто говорю здесь около 1 файла!
Вы можете использовать forfiles
:
forfiles /D -1 /M log.txt /C "cmd /c del @file"
PowerShell должен заменить партию.
if ((dir log.txt).LastWriteTime -lt [datetime]::today) { del log.txt }
После просмотра вашего примера я согласен :) – RedFilter
... хотя я немного опечален - я просто понял, что партия была моим первым языком около 25 лет назад , GOTO и все такое! – RedFilter
Действительно ли это невозможно без powershell? Не все компьютеры имеют Powershell. Это будет что-то с большим количеством пользователей, и я не хочу делать это слишком сложным для них. –
Batch делает что-то, что просто очень сложный. Если вы можете использовать Cygwin, или установить Unix Tools, рассмотреть возможность сделать что-то вроде этого:
find log.txt -mtime +1 -exec rm {} \;
UPDATE
нашел что-то, что может быть useful к вам, используя чистую партию. Вы должны иметь возможность модифицировать и адаптировать его в соответствии с вашими потребностями.
«Нашел то, что может быть полезно для вас, используя чистую партию» - я бы не использовал его, поскольку он полагается на предположения о региональных настройках (формат даты в США). – Joe
К сожалению, вы не можете сделать это надежным и общим способом (*).
Powershell, Cygwin, Unix Tools - отличные решения, если вы можете быть уверены, что они будут установлены на целевой машине.
Я написал небольшую служебную программу, которая берет путь с подстановочными знаками и количеством дней и удаляет все файлы, соответствующие пути, который превышает указанное количество дней. В моей среде это было более удобно, чем установка стороннего пакета.
(*) Следующие действия будут работать для вашего конкретного случая (дата модификации не сегодня), если формат коротких дат в ваших региональных настройках включает в себя век (то есть длина 10 символов). Но это не обобщается на N дней, и я не хотел полагаться на региональные настройки компьютера для такого рода вещи:
for %%i in (log.txt) do SET FILETIME=%%~ti
IF NOT "%FILETIME:~0,10%" == "%DATE%" DEL /f log.txt
За что его стоит использовать jscript или vbscript. Оба этих языка сценариев были установлены на платформах MS с середины 90-х годов
Если у меня возникнут проблемы с установкой новой программы, вместо этого я установлю PowerShell. (Кроме того, вы должны ссылаться на файлы) –
А? Файловые файлы содержатся в последних версиях Windows. Не нужно ничего устанавливать. – Joey
файлы в порядке, потому что если вы используете PowerShell, вам действительно нужно установить новую программу. с файлами forfiles, вы можете просто положить forfiles.exe в каталог пакета. –