之前的測試我已經順利完全。
但是當我便用下列的Code再一次進行測試後,發現了一些問題。
@echo off
set log_dir=D:\Backup
echo Starting Remove Expired File(7 days ago)...
forfiles /p %log_dir% /d -7 /s /m *.* /c "cmd /c del @path"
echo Starting Remove Empty Folder...
for /f "delims=" %%d in ('dir %log_dir% /s /b /ad ^| sort /r') do rd "%%d"
當完全後,有關資料夾內原來的檔案是刪除了,但是會出來一個名為「7」沒有副檔名的檔案。當然因為不是沒有檔案的資料夾,所以有關資料夾是刪除不了。
這到底是甚麼問題,為什麼會在檔案是刪除後會出來這個沒有副檔名的檔案﹖
那個7不是新增出來的檔案,應是原來就已存在的,只是因為語法問題沒有被刪掉
原因是7沒有"."所以不會被刪,應該修正如下
forfiles /p %log_dir% /d -7 /s /m * /c "cmd /c del @path"