1.刪除指定路徑(下面的例子是腳本文件所在目錄下的file文件夾)下指定天數(下面的例子是3天前)以前的文件。
set delpath=%~dp0file
set days=-3
forfiles /p %delpath% /s /m * /d %days% /c "cmd /c rd /s /q @path"
如果刪除不乾淨,可以再加一句,變成:
set delpath=%~dp0file
set days=-3
forfiles /p %delpath% /s /m * /d %days% /c "cmd /c rd /s /q @path"
forfiles /p %delpath% /s /m * /d %days% /c "cmd /c del /s /q @path"
再完善一下
說明:設置每天清理腳本文件所在目錄下的file文件夾下的所有3天前的文件,記錄每次的清理時間,並且不顯示命令行窗口:
@echo off
if "%1"=="h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0""h",0)(window.close)&&exit
:begin
set delpath=%~dp0file
set days=-3
forfiles /p %delpath% /s /m * /d %days% /c "cmd /c rd /s /q @path"
forfiles /p %delpath% /s /m * /d %days% /c "cmd /c del /s /q @path"
timeout 86400
echo %date% %time%>>%~dp0\delFiles.log
start /min %~df0 & exit
2.批量修改文本文檔的內容
說明:修改當前文件所在目錄下的modify目錄中格式爲.xml的所有文件,將" <user>admin</user>"替換爲" <user>java_t_t</user>"(按行爲單位進行替換,本來可以用一個循環完成,但是在win10系統上測試的時候(win7上測試可以,也許是系統設置的問題),發現剛剛修改完的文件會被外層的for循環再次讀取,導致程序陷入死循環,所以使用兩個for,避免陷入死循環)
@echo off
set nowDir=%~dp0
set modifyDir=%nowDir%\modify
set modifyLog=%nowDir%\modify.log
echo.>%modifyLog%
for /r %modifyDir% %%i in ("*.xml") do (
echo start modify %%i>>%modifyLog%
for /f "delims=" %%j in (%%i) do (
if "%%j" EQU " <user>admin</user>" (echo ^<user^>java_t_t^</user^>) else (echo %%j)
)>>%%~dpi%%~ni.tmp
)
for /r %modifyDir% %%i in ("*.tmp") do (
del %%~dpi%%~ni.xml
ren %%i %%~ni.xml
echo finished modify %%~dpi%%~ni.xml>>%modifyLog%
)
擴展知識:https://blog.csdn.net/xhhjin/article/details/7373524