@prompt $G
REM (c)SilverVox 27.12.2016 betta
@ECHO off
@CHCP 1251 >NUL
REM ОПРЕДЕЛЕНИЕ ВЕРСИИ ВИНДОВС
IF "%OS%"=="Windows_NT" GOTO NT
ECHO.This operating system is not "Windows NT".
GOTO :EOF  

:NT
@TITLE FindDelPKF
@SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

ECHO Help HLP ? |FIND /I "!CMDLine!" 1>NUL 2>NUL
IF "%ERRORLEVEL%"=="0" (
        CALL :HELP "%~dpnx0"
        EXIT /B 0
)

REM Проверяем права админа
REG QUERY "HKEY_USERS\S-1-5-19\Environment" /v TEMP 2>&1 | FINDSTR /I /C:"REG_EXPAND_SZ" 2>&1 > NUL
IF NOT "%ERRORLEVEL%"=="0" (
        CALL :ERROR_1
        EXIT /B  !ERRORLEVEL!
)

(SET ERROR=:Error_0)
(SET List=%tmp%\%~n0_%Random%.lst)
(SET DisplayList=%tmp%\%~n0_%Random%.lst)
ECHO.>%List%||EXIT /B 2
ECHO.>%DisplayList%||EXIT /B 2




:CMDLINE
@IF  "_%~1"=="_" (
        CALL :ERROR_3
        EXIT /B  !ERRORLEVEL!
)
IF NOT EXIST "%~1" (
        CALL :ERROR_3
        EXIT /B  !ERRORLEVEL!
)


IF /I NOT "_%~2"=="_" (
        CALL :ERROR_3
        EXIT /B  !ERRORLEVEL!
)

REM Объект назначеничя не является каталогом
CD /D "%~1" 1>NUL 2>NUL
IF NOT "%ERRORLEVEL%"=="0" (
        CALL :ERROR_4
        EXIT /B  !ERRORLEVEL!
)
(SET TargetPath=%CD%)
IF /I "%TargetPath:~-1%"=="\" (SET TargetPath=%TargetPath:~0,-1%)



:MAIN
(SET count=0)
(SET DisplayDir=%CD%)
FOR /F "TOKENS=1* DELIMS=" %%A IN ('DIR "%TargetPath%\*.pkf" "%TargetPath%\*.pk" "%TargetPath%\*.reapeaks" /A-d /B /S /OE') DO (
        IF /I "_%%~xA"=="_.reapeaks" (
                 IF NOT EXIST "%%~dpnA" (
                        (SET /A count=!count!+1)
                        ECHO.%%~A>>%List%
                        IF NOT "!DisplayDir!"=="%%~dpA" (
                               (SET DisplayDir=%%~dpA)
                                ECHO.>>%DisplayList%
                                ECHO.!DisplayDir!>>%DisplayList%
                                ECHO.>>%DisplayList%
                                ECHO.        %%~nxA>>%DisplayList%
                        ) ELSE (
                                ECHO.        %%~nxA>>%DisplayList%
                        )
                )


        ) ELSE (
                 IF NOT EXIST "%%~dpnA.wav" (
                        (SET /A count=!count!+1)
                        ECHO.%%~A>>%List%
                        IF NOT "!DisplayDir!"=="%%~dpA" (
                               (SET DisplayDir=%%~dpA)
                                ECHO.>>%DisplayList%
                                ECHO.!DisplayDir!>>%DisplayList%
                                ECHO.>>%DisplayList%
                                ECHO.        %%~nxA>>%DisplayList%
                        ) ELSE (
                                ECHO.        %%~nxA>>%DisplayList%
                        )
                )
        )
)

REM TYPE %list% >%tmp%\1.tmp
REM %tmp%\1.tmp
REM Pause>nul
REM EXIT /b

IF "%count%" GTR "0" (
        ECHO.
        ECHO.
        ECHO.
        ECHO.Следующие %count% файлов будут удалены:
        TYPE "%DisplayList%"
        ECHO.
        ECHO.
        CHOICE /C YNH /N /T 120 /D N /M "Подтвердите операцию[Yes|No|Help]:"
        IF "!ERRORLEVEL!"=="1" (
        ECHO.>%DisplayList%||EXIT /B 2
       (SET DisplayDir=%CD%)
       (SET count1=0)
                FOR /F "USEBACKQ DELIMS=" %%A IN ("%List%") DO (
                        IF EXIST "%%~A" (
                                DEL /F /Q "%%~A" 1>NUL 2>NUL 
                                IF EXIST "%%~A" (
                                       (SET /A count1=!count1!+1)
                                       (SET ERROR=:Error_5)
                                        IF NOT "!DisplayDir!"=="%%~dpA" (
                                               (SET DisplayDir=%%~dpA)
                                                ECHO.>>%DisplayList%
                                                ECHO.!DisplayDir!>>%DisplayList%
                                                ECHO.>>%DisplayList%
                                                ECHO.        %%~nxA>>%DisplayList%
                                        ) ELSE (
                                                ECHO.        %%~nxA>>%DisplayList%
                                        )
                                )
                        )
                )
        )
        IF "!ERRORLEVEL!"=="2" GOTO END
        IF "!ERRORLEVEL!"=="3" (CALL :HELP "%~dpnx0"&GOTO END)
)




CALL %ERROR%
(SET ERROR=%ERRORLEVEL%)

:END
IF EXIST "%DisplayList%" DEL /F /Q "%DisplayList%"
IF EXIST "%List%" DEL /F /Q "%List%"
EXIT /B %ERROR%




REM ==================== ERRORS AND OTHER MESSEGES =============================

:ERROR_0
IF "%count%" GTR "0" (
        ECHO.
        ECHO.
        ECHO.Все указанные файлы были успешно удалены.
        ECHO.
) ELSE (
        ECHO.
        ECHO.
        ECHO.Соответствующие файлы не обнаружены.
        ECHO.
)
ECHO.To exit press any key...
PAUSE>NUL 
EXIT /B 0

:ERROR_1
ECHO.
ECHO.
ECHO.ERROR: Access denied.
ECHO.You must have administrator rights to continue.
ECHO.
ECHO.To exit press any key...
PAUSE>NUL 
EXIT /B 1   


:ERROR_2
ECHO.
ECHO.
ECHO.ERROR: Неудалось записать временный файл.
ECHO.
ECHO.To exit press any key...
PAUSE>NUL 
EXIT /B 2


:ERROR_3
ECHO.
ECHO.
ECHO.ERROR: Command line is error.
ECHO.Please type "HELP" in command line to show the usage dialog.
ECHO.
ECHO.To exit press any key...
PAUSE>NUL 
EXIT /B 3


:ERROR_4
ECHO.
ECHO.
ECHO.ERROR:Объект назначеничя не является каталогом
ECHO.
ECHO.To exit press any key...
PAUSE>NUL 
EXIT /B 4


:ERROR_5
ECHO.
ECHO.
ECHO.
ECHO.ERROR: Следующие %count1% файлов не удалось удалить:
TYPE "%DisplayList%"
ECHO.
ECHO.To exit press any key...
PAUSE>NUL 
EXIT /B 5


:ERROR_6
ECHO.
ECHO.
ECHO.WARNING:
ECHO.
ECHO.
ECHO.To exit press any key...
PAUSE>NUL 
EXIT /B 0


:HELP
SHIFT
ECHO.
ECHO.COMMAND LINE:
ECHO.%~n0 [/?^|help^|hlp] 
ECHO.%~n0 Path
ECHO.
ECHO.COMMAND LINE OPTIONS:
ECHO.  Path            :Путь к каталогу.
ECHO.  [/?^|hlp^|help] :Show the Usage dialog.
ECHO.
ECHO.DESCRIPTIONS:
ECHO.Поиск и удаление вспомагательных файлов Adobe Audition (*.pkf *.pk)
ECHO.оставшихся незамечеными и ненужными после удаления 
ECHO.соответствующих аудиофайлов(*.wav)
ECHO.Поиск производится в заданном каталоге и всех его подкаталогах.
ECHO.Все найденные файлы даного формата, не имеющие соответствующих
ECHO.аудио-файлов с аналогичными именами, удаляются.
ECHO.
ECHO.ERRORLEVEL:
ECHO.  1 - Access denied.
ECHO.  2 - Ошибка записи временного файла.
ECHO.  3 - Command line is error.
ECHO.  4 - Объект назначеничя не является каталогом.
ECHO.  5 - Неудалось удалить некоторые файлы.
ECHO.  6 - 
ECHO.
ECHO.
ECHO.To exit, press any key other now... 
PAUSE>NUL
EXIT /B 0
