У меня есть следующий пакетный файл для удаления временных файлов.Это просто одинаковые команды на разных дисках.
После завершения запуска командного файла я открыл deltemp.txt и обнаружил, что последняя запись:
Deleted file - C:\Windows\SoftwareDistribution\Download\00a3c0a2b495f51102e950f382252d85\Package_for_KB4515383~~amd64~~18362.350.1.0\$dpx$.tmp
На диске D ничего нет:или K:
В окне cmd последние три строки:
C:\WINDOWS\System32>if EXIST D:\ (for /F "delims=" %i in ('dir D:\ /s /b |find "\~"') do (
del /q "%i"
) ) 1>>C:\deltemp.txt 2>&1
На K ничего нет:.
На K есть файлы с именем, например ~* .xlsx.Они не удалены.Я вручную ввел следующую команду для их удаления.
for /f "delims=" %i in ('dir K:\ /s /b /ah ^|find "\~"') do del /q /ah "%i"
Может быть, что-то не так с оператором IF?Но это не объясняет, почему диск D: был на экране, а не в файле журнала.
@REM ======================== Drive C ===============================================
@rem del ~*.xlsx
@if EXIST C:\ (for /f "delims=" %%i in ('dir C:\ /s /b /ah ^|find "\~"') do del /a /ah "%%i") >C:\deltemp.txt 2>&1
REM @rem del ~*.tmp
@if EXIST C:\ (for /f "delims=" %%i in ('dir C:\ /s /b /ah ^|find "~" ^|find "tmp" ') do del /q /ah "%%i") >>C:\deltemp.txt 2>&1
@REM ======================== Drive D ===============================================
REM @rem del ~$*
if EXIST D:\ (for /f "delims=" %%i in ('dir D:\ /s /b /ah ^|find "~$" ') do del /q /ah "%%i") >>C:\deltemp.txt 2>&1
REM @rem del ~*.tmp
if EXIST D:\ (for /f "delims=" %%i in ('dir D:\ /s /b /ah ^|find "~" ^|find "tmp" ') do del /q /ah "%%i") >>C:\deltemp.txt 2>&1
@rem del ~*.xlsx
if EXIST D:\ (for /f "delims=" %%i in ('dir D:\ /s /b /ah ^|find "\~"') do del /q /ah "%%i") >>C:\deltemp.txt 2>&1
@REM ======================== Drive K ===============================================
REM @rem del ~$*
if EXIST K:\ (for /f "delims=" %%i in ('dir K:\ /s /b /ah ^|find "~$" ') do del /q /ah "%%i") >>C:\deltemp.txt 2>&1
REM @rem del ~*.tmp
if EXIST K:\ (for /f "delims=" %%i in ('dir K:\ /s /b /ah ^|find "~" ^|find "tmp" ') do del /q /ah "%%i") >>C:\deltemp.txt 2>&1
@rem del ~*.xlsx
if EXIST K:\ (for /f "delims=" %%i in ('dir K:\ /s /b /ah ^|find "\~"') do del /q /ah "%%i") >>C:\deltemp.txt 2>&1