Пакетный файл для удаления выбранных файлов - PullRequest
0 голосов
/ 21 апреля 2011

В большинстве современных систем система автоматически создает дополнительные файлы, которые не нужны.Как я могу создать файл .bat, который использует контрольный список для удаления любого файла, которого нет в нем?

Это будет полезно для удаления автоматически созданных файлов резервных копий, журналов печати, журналов ошибок и т. Д.в файлах настроек, которые я создал.

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

Попробуйте, убедитесь, что для SEARCHDIR установлено значение реального dir, и заполните keep.txt файлами, которые вы хотите сохранить, по 1 файлу на строку, используя полный путь, включая dir. Если вы не хотите использовать dir, настройте команду DIR /S /B, чтобы она выводила тот же формат, что и в вашем keep.txt

@echo off
setlocal enabledelayedexpansion
set KEEPFILES=keep.txt
set SEARCHDIR=.\test_folder
SET /a KEEPTHISFILE=2

FOR /f "tokens=*" %%A IN ( 'DIR /S /B %SEARCHDIR%\*' ) DO (
SET /a KEEPTHISFILE=0
for /f "tokens=1,* delims=¶" %%B in ( '"type %KEEPFILES%"') do (
    if "%%A"=="%%B" SET /a KEEPTHISFILE=1       
)
if "!KEEPTHISFILE!"=="0" (
    echo "deleting %%A"
    del /f %%A  
)
)
0 голосов
/ 21 апреля 2011

Создайте файл с именем 'deletestuff.bat' (или как хотите, чтобы он вызывался, если он .bat).Затем заполните его:

rm *.tmp
rm *.blah

Где .tmp и .blah - это расширения файлов, которые вы хотите удалить (например, они могут быть .log).Сначала проверьте его, скопировав образец файлов в новую папку и запустив там новый .bat, просто чтобы убедиться, что он не удаляет важные вещи.

...