Как мне написать командный файл для удаления папок и файлов на временной основе? - PullRequest
2 голосов
/ 09 марта 2009

Точные дубликаты:

Я хочу написать командный файл для временного удаления папок, подпапок и временных файлов.

Условия такие:

  • Мне нужно удалить файл из папки за час до текущего времени работы.
  • Я хочу получить текущее время из системы и удалить за час до файлов
  • Формат файла такой: <file name> <date>
  • Формат времени dd-mm-yyyy-hh-mm или dd-mm-yy-hh-mm

Ответы [ 2 ]

2 голосов
/ 09 марта 2009

Пакет может быть удивительно мощным, но я не думаю, что та манипуляция с датой, которую вы хотите, будет практичной.

Вы можете использовать FOR, чтобы разбить дату на элементы, а затем использовать SET /A, чтобы выполнить вычитание, но тогда вам понадобится огромное количество операторов IF и GOTO для обработки таких случаев, как вычитая час с половины второго ночи 1 января.

Я думаю, вам лучше расследовать VBS или Powershell .

1 голос
/ 31 марта 2010

Возможно, вы захотите попробовать этот скрипт, чтобы удалить файлы из папки старше 1 часа.

# Script Delete1Hour.txt
var str folder, list, file
cd $folder
lf -n "*" $folder ($ftype=="f") AND ( $fmtime < addtime(diff("-10000")) ) > $list
while ($list <> "")
do
    lex "1" $list > $file
    system del ("\""+$file+"\"")
done

Это битерскрипт. Важная команда

lf -n "*" $folder ($ftype=="f") AND ( $fmtime < addtime(diff("-10000")) )

Что сообщает biterscripting - дай мне все записи в папке $ folder с именами, которые соответствуют шаблону "*", тип файла которого "f" (плоский файл, а не каталог), а время модификации файла ($ fmtime) ранее чем 1 час. См. Документацию по команде lf по адресу http://www.biterscripting.com/helppages/lf.html.

Сохраните скрипт в файле C: /Scripts/Delete1Hour.txt, запустите его как

script  "C:/Scripts/Delete1Hour.txt" folder("C:/testfolder")

Он удалит все файлы из C: / testfolder старше 1 часа.

...