English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

您好

小弟在工作中發現一個小問題,我們公司的機台會將員工所測量物件的數值記錄在硬碟中的某ㄧ個特定的資料夾內,其副檔名為CSC(忘了),機台的流程是員工使用機台去測量物件,機台本身會自動將所測量出的數值轉成特定的檔案並儲存在C:,我們再將機台所產生的檔案Up date到總公司,這樣會有一個問題,每當操作一次就會產生一個檔案,這樣檔案會越來越多,我希望能利用簡易的程式將我所指定路徑中的檔案刪除,我在網路上有看到一些方法清除。例如:

在桌面上點鼠標右鍵,選擇新建一個「記事本」,把下面的字複製進去,點「另存為」,把文件名定為「清除系統LJ.bat」就完成,記住後綴名一定要是.bat
@echo off
echo 正在清除系統垃圾文件,請稍等......
del /f /s /q %systemdrive%\\*.tmp
del /f /s /q %systemdrive%\\*._mp
del /f /s /q %systemdrive%\\*.log
del /f /s /q %systemdrive%\\*.gid
del /f /s /q %systemdrive%\\*.chk
echo 清除系統LJ完成!
echo. & pause

不過這只是清除電腦中的暫存檔,我希望能經由類似這樣簡單的模式,自己建立一個能清除"指定路徑檔案"的ㄧ個程式,請大家開導開導小弟。

Thank's

2007-03-14 19:24:14 · 2 個解答 · 發問者 Marco 1 in 電腦與網際網路 軟體

2 個解答

其實你只要把上面的檔案修改一下就可以了。

del /f /s /q %systemdrive%\\*.chk
這行的意思是說:

刪除 %systemdrive% 目錄下包含所有子目錄下的所有副檔名為 chk 的檔案,
刪除時不顯示「刪除確認提示」,
並強制刪除唯讀檔案。


所以你只要修改你想刪除的目錄及副檔名即可。
如: del /f /s /q c:\\measurement\\*.csc

del 的用法說明:

刪除一個或更多檔案。











DEL [/P] [/F] [/S] [/Q][/A[[:]attributes]] names





ERASE [/P] [/F][/S] [/Q] [/A[[:]attributes]] names











names指定一個或更多檔案或目錄清單。





可以使用萬用字元來刪除多個檔案。 如果





指定目錄,這個目錄內的所有檔案





將被刪除。











/P刪除每個檔案前,先提示確認。





/F強制刪除唯讀檔案。





/S由所有子目錄刪除指定的檔案。





/Q安靜模式,不要問是否確定刪除全域萬用字元





/A根據屬性選取要刪除的檔案





attributesR 唯讀檔案S 系統檔案





H 隱藏檔案A 準備保存的檔案





- 首碼表示不是

2007-03-15 01:27:54 補充:
不過你要小心一點使用呢!
因為一執行,你的資料全部就都不見了,
如果說,資料還沒有送到總公司時,
就誤殺檔案的話,可是很慘的。

2007-03-15 01:39:51 補充:
給你一個 vbs 的程式,
請將接下來的部份,
存成 clean.vbs,
使用方法:clean.vbs 目錄 天數

那就會將那個目錄下的檔案,
除了最近『天數』有修改過的檔案後,
全部刪除。
如 clean.vbs c:\temp 30
就是說, c:\temp 只會保留下最近 30 天內有更動過的檔案。
但是這程式不會搜尋子目錄。

2007-03-15 01:40:22 補充:
'Usage : clean.vbs log_path keep_days
Dim objArgs, where, days
Set objArgs = WScript.Arguments

where = "log" '預設刪除的目錄
days = 30 '預設保留幾天內的檔案
'讀取前二個參數,省略時,保留 30 天資料
If objArgs.Count >= 2 Then
where = objArgs(0)
days = objArgs(1)
ElseIf objArgs.Count >= 1 Then
where = objArgs(0)
End If

2007-03-15 01:41:06 補充:
DeleteFilesByDays where, days

Sub DeleteFilesByDays(where, keepDays)
Dim fso, folder, files, f
Set fso = CreateObject("Scripting.FileSystemObject")

2007-03-15 01:41:15 補充:
If fso.FolderExists(where) Then
Set folder = fso.GetFolder(where)
Set files = folder.Files
For Each f In files
If DateDiff("d", f.DateLastModified, Now) > days Then
f.Delete
End If
Next
End If
End Sub

2007-03-14 21:13:00 · answer #1 · answered by Anonymous · 0 0

到下面的網址看看吧

▶▶http://qoozoo09260.pixnet.net/blog

2014-10-14 12:35:27 · answer #2 · answered by Anonymous · 0 0

fedest.com, questions and answers