?? 刪除指定天數(shù)之前的文件.txt
字號(hào):
今天有個(gè)網(wǎng)友說他公司里的監(jiān)控錄像軟件自帶的刪除功能沒用了,但是它要定時(shí)刪除那些n天前的文件,因?yàn)椴患皶r(shí)刪除的話,硬盤空間會(huì)不夠,所以我就用批處理結(jié)合vbs腳本幫他寫了一個(gè)。
下面的代碼復(fù)制下來之后,保存成.bat文件,也就是批處理文件,然后把這個(gè)批處理保存到要?jiǎng)h除文件的那個(gè)目錄下,然后雙擊運(yùn)行就可以刪除指定類型的文件了。
懂得命令的人可以根據(jù)我這個(gè)批處理,把它修改成自己需要的代碼。
@echo off
title 憶林子--刪除指定天數(shù)之前的文件
color 0a
set listFile=憶林子
set vbsFile=憶林子.vbs
CALL :delTempFile
echo ===================================
echo.
echo 例如:如果要dat為后綴的文件的話
echo 請(qǐng)輸入dat
echo.
echo ===================================
set /p inputFileType=[請(qǐng)輸入后綴]
dir *.%inputFileType% /a/o-n/b>>%listFile% 2>nul
cls
echo ===================================
echo.
echo 例如:如果要?jiǎng)h除3天之前的%inputFileType%
echo 文件的話,請(qǐng)輸入3
echo.
echo 注意:刪除到現(xiàn)在為止的所有文件的話
echo 請(qǐng)輸入0
echo.
echo ===================================
set /p inputDays=[請(qǐng)輸入天數(shù)]
CALL :createVBSFile >> %vbsFile%
%vbsFile% %inputDays% "%~dp0" "%listFile%"
CALL :delTempFile
echo 操作結(jié)束,請(qǐng)按任意鍵退出該批處理...
pause>nul
:delTempFile
del %listFile% /q 1>nul 2>nul
del %vbsFile% /q 1>nul 2>nul
goto :eof
:createVBSFile
echo Dim MyArray,strResult,filePath,days,listFile
echo days = WScript.Arguments.Unnamed.Item^(0^)
echo filePath = WScript.Arguments.Unnamed.Item^(1^)
echo listFile = WScript.Arguments.Unnamed.Item^(2^)
echo strResult = ""
echo MyArray = Split^(readFile^(listFile^), vbCrlf, -1^)
echo for i = 0 to UBOUND^(MyArray^)-1
echo strResult = getGreateTime^(filePath ^& MyArray^(i^)^)
echo IF DateDiff^("d", Now, strResult^) ^<= Int^(-days^) Then
echo del^(filePath ^& MyArray^(i^)^)
echo end if
echo NEXT
echo '---------------------------------------
echo '功能:讀取文本里的所有文本
echo '用法:readFile^("c:\test.txt"^)
echo '---------------------------------------
echo Function readFile^(filename^)
echo Dim fso, ts, s
echo Const ForReading = 1
echo Set fso = CreateObject^("Scripting.FileSystemObject"^)
echo ' 讀取文件內(nèi)容。
echo Set ts = fso.OpenTextFile^(filename, ForReading^)
echo s = ts.ReadAll
echo ts.Close
echo readFile = s
echo End Function
echo '---------------------------------------
echo '功能:刪除一個(gè)文件
echo '用法:del^("c:\windows\system32\cmd.exe"^)
echo '---------------------------------------
echo Sub del^(filespec^)
echo Dim fso
echo Set fso = CreateObject^("Scripting.FileSystemObject"^)
echo fso.DeleteFile^(filespec^)
echo End Sub
echo '---------------------------------------
echo '功能:取得一個(gè)文件的建立時(shí)間
echo '用法:getGreateTime^("c:\windows\system32\cmd.exe"^)
echo '---------------------------------------
echo Function getGreateTime^(filespec^)
echo Dim fso, f
echo Set fso = CreateObject^("Scripting.FileSystemObject"^)
echo Set f = fso.GetFile^(filespec^)
echo getGreateTime = f.DateCreated
echo End Function
goto :eof
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -