Я создаю скрипт, который удаляет все пустые папки с подпапками в пути. Теперь мне нужно сделать, если папка была создана 2 дня назад, а ее пустая она должна быть удалена вместе с другими пустыми папками старше 2 дней. И если нет, ее не следует удалять. И мне также нужно/нужно сделать, что удаленная папка написана в журнале. Я сделал это с помощью 5 типов файлов, но я не знаю, как это работать с папками.Как удалить все пустые папки старше 2 дней?
Im действительно новый для партии, поэтому я не знаю, что я должен делать. Я проверил Google, но результаты не совпали с моей проблемой. Надеюсь, кто-то может мне помочь.
Вот мой код, который i've написано до сих пор:
@echo off
::start path/Variables
set startdir="C:\Users"
::Initialize the Variable
set /a loop=0
::Directory c:\temp\ will be created, if the folder not exists
if not exist c:\temp\ md c:\temp\
::Create Logfile for Deleted Filetypes in C:\Log\LOG_Useless_File_Killer.txt
echo ----------------------------------- >> C:\Log\LOG_Useless_File_Killer.txt
echo Logfile from: %date% at %time% >> C:\Log\LOG_Useless_File_Killer.txt
echo. >> C:\Log\LOG_Useless_File_Killer.txt
::this 5 Filetypes are going to be deleted immediately
del C:\Users\Thumbs.db /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt
del C:\Users\desktop.ini /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt
del C:\Users\*.DS_Store /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt
del C:\Users\*._DS_Store /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt
del C:\Users\*.desktop /f /q /s >> C:\Log\LOG_Useless_File_Killer.txt
::Writes the directorys in c:\temp\tmp.txt.
dir /AD /b /s %startdir% > c:\temp\tmp.txt
::at goto start it will be start again
:start
::the Variable %loop% is increased by 1
set /a loop =%loop%+1
::at 5 --> goto exit
if %loop%==5 goto exit
::Under 5 --> goto start
else goto start
::deletes every empty folder which is written in C:\temp\tmp.txt
for /F "delims=" %%i in (c:\temp\tmp.txt) do rd "%%i"
::--> goto start and begins again
goto start
::%loop% has reached 5 --> exit
:exit
::Console window will be closed
exit
pause
exit
Вы уже искали в Stack Overflow с поисковым термином '[batch-file] old days'? Существует много похожих вопросов, таких как [Удалить вспомогательные каталоги старше 30 дней] (http://stackoverflow.com/questions/3419091/). – Mofi
Ищите бесплатный инструмент под названием delage32. Мы используем его для аналогичной цели. –
Я не хочу сказать, что я уже тестировал delage32, forefiles и robocopy. Но я никогда не достигал своей цели. Я искал в StackOverflow, но я не знаю, как я могу поместить это в If или For .. Потому что, когда Directorys старше, чем 2 Days (Creationdate), его следует удалить. И я не знаю, как это сделать в цикле или если ... – AmiKego