Я недавно начал создавать несколько небольших пакетных файлов, так как я думаю, что пакетный сам по себе интересен, но также потому, что он помогает автоматизировать некоторые вещи, которые я делаю на регулярной основе.
Сценарий, который яработает над программой, которая удаляет все каталоги в папке (на данный момент вставляется как% UserProfile%) и позволяет игнорировать все записи в файле исключений.Я не хочу точных путей, я хотел, чтобы, если исключение присутствовало где-либо в пути к папкам, его нужно было исключить.
Вот что у меня есть (Имейте в виду, я не оченьхорошо):
@ECHO OFF
CD %UserProfile%
SET /A Violation=0
SET "ExceptionFile=%*"
SETLOCAL ENABLEDELAYEDEXPANSION
SHIFT
ECHO Starting...
ECHO Scan started at %TIME% > "%UserProfile%\Log.txt"
FOR /f "usebackq delims=" %%D in (`"dir /ad/b/s | sort /R"`) DO CALL :DIREXPANDER "%%D"
ECHO Scan Finished at %TIME% >> "%UserProfile%\Log.txt"
GOTO:EOF
:DIREXPANDER
SET /A Violation=0
SET Directory=%1
ECHO %Directory%
FOR /F %%X IN (%ExceptionFile%) DO (
SET "Exception=%%X"
ECHO %Directory% Compared to %Directory:!Exception!=% >> "%UserProfile%\Test.txt"
If NOT %Directory%==%Directory:!Exception!=% (
ECHO EXCEPTION: %Directory% Violates !Exception! >> "%UserProfile%\Log.txt"
REM SET /A Violation=1
)
)
IF %Violation%==0 (
RMDIR %Directory% 2>NUL && ECHO DELETION: %Directory% >> "%UserProfile%\Log.txt"
)
GOTO:EOF
Если я заменю! Исключение!С реальной строкой она работает просто отлично, но при использовании переменной она не работает.
Спасибо за любые предложения или проблемы, которые вы заметили!