bat腳本—1

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章