iT邦幫忙

0

再來「自行刪除超過7日的資料夾連檔案」問題

ska 2020-05-18 16:37:131454 瀏覽

之前的測試我已經順利完全。

但是當我便用下列的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」沒有副檔名的檔案。當然因為不是沒有檔案的資料夾,所以有關資料夾是刪除不了。

這到底是甚麼問題,為什麼會在檔案是刪除後會出來這個沒有副檔名的檔案﹖

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
蟹老闆
iT邦大師 1 級 ‧ 2020-05-18 21:46:05

那個7不是新增出來的檔案,應是原來就已存在的,只是因為語法問題沒有被刪掉
原因是7沒有"."所以不會被刪,應該修正如下

forfiles /p %log_dir% /d -7 /s /m * /c "cmd /c del @path"
ska iT邦新手 3 級 ‧ 2020-05-20 11:41:39 檢舉

那個7的檔案真是在運行這一句指令先出現。

但是原有的檔案又真是刪除的到。

這我先奇怪。

蟹老闆 iT邦大師 1 級 ‧ 2020-05-20 12:40:32 檢舉

那個7的檔案真是在運行這一句指令先出現。

你的批次檔是否不止有這樣,若只有這樣或許可以考慮是不是其它程式造成的.

我要發表回答

立即登入回答