标题: [系统相关] 请大家看看我这个关机脚本有没有错误? [打印本页]
作者: crist 时间: 2012-11-14 16:01 标题: 请大家看看我这个关机脚本有没有错误?
本帖最后由 crist 于 2012-11-20 17:12 编辑
根据网上的一些清理垃圾的批处理,我做了一个批处理作为关机脚本,代码如下:- @echo off
- rem 记录系统注销时间
- set time=%time: =0%
- echo>>%systemroot%\system32\LoginAndLogoutRecord.Log logout time: %date% %time%
- rem 正在清理注册表...
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Data" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Recent Files" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\PowerPoint\Recent File List" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\WinRAR\ArcHistory" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Adobe\MediaBrowser\MRU\Photoshop\FileList" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Search Assistant\ACMru" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\KMPlayer\KMP2.0" /v "LastFileName" /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs" /va /f >NUL 2>NUL
- rem 查询IE缓存位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache>%temp%\cleantmp.txt
- rem 查询cookies位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cookies>>%temp%\cleantmp.txt
- rem 查询历史纪录位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v History>>%temp%\cleantmp.txt
- rem 查询NetHood位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v NetHood>>%temp%\cleantmp.txt
- rem 查询Recent位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Recent>>%temp%\cleantmp.txt
- for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do (
- if exist "%%a %%b\*.*" del/f/q/s/a "%%a %%b\*.*" >NUL 2>NUL
- for /d %%i in ("%%a %%b\*.*") do (if exist "%%i" rd/q/s "%%i")>NUL 2>NUL
- )
- del/f/q/a %temp%\cleantmp.txt >NUL 2>NUL
- rem 正在清理磁盘垃圾...
- del/f/q/s/a "%temp%\*.*" >NUL 2>NUL
- del/f/q/s/a "%systemroot%\Temp\*.*" >NUL 2>NUL
- del/f/q/s/a "%systemroot%\Prefetch\*.*" >nul 2>nul
- if exist "%systemdrive%\Temp" rd/q/s "%systemdrive%\Temp" >nul 2>nul
-
- for /d %%a in ("%systemroot%\$*$") do (rd/q/s "%%a")>NUL 2>NUL
- for /d %%a in ("%temp%\*.*") do (rd/q/s "%%a")>NUL 2>NUL
- for /d %%a in ("%tmp%\*.*") do (rd/q/s "%%a")>NUL 2>NUL
-
- for /f "delims=" %%i in ('dir/ad-h/b/o "%systemdrive%\Documents and Settings"') do (
- del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Cookies\*.txt" >nul 2>nul
- del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Local Settings\temp\*.*" >nul 2>nul
- del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Local Settings\Temporary Internet Files\*.*" >nul 2>nul
- del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\recent\*.*" >nul 2>nul
- for /f "tokens=1 delims= " %%b in ('dir/ad/b/o "%systemdrive%\Documents and Settings\%%i\Local Settings\temp"') do (rd/q/s "%systemdrive%\Documents and Settings\%%i\Local Settings\temp\%%b")>nul 2>nul
- for /f "tokens=1 delims= " %%d in ('dir/ad/b/o "%systemdrive%\Documents and Settings\%%i\Local Settings\Temporary Internet Files"') do (rd/q/s "%systemdrive%\Documents and Settings\%%i\Local Settings\Temporary Internet Files\%%d")>nul 2>nul
- )
-
- for /f "delims=" %%i in ('dir/ad/b/s/o "%systemdrive%\Documents and Settings\Chrome"') do (
- del/f/q/s/a "%%i\User Data\*Archived*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Cookies*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*History*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Index*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*journal*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Links*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Session*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Shortcuts*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Sites*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Tabs*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*.bak" >NUL 2>NUL
-
- for /f "delims=" %%a in ('dir/ad/b/s "%%i\User Data\*cache*"') do (if exist "%%a" rd/q/s "%%a")>NUL 2>NUL
- for /f "delims=" %%b in ('dir/ad/b/s "%%i\User Data\*databases*"') do (if exist "%%b" rd/q/s "%%b")>NUL 2>NUL
- for /f "delims=" %%c in ('dir/ad/b/s "%%i\User Data\*Local Storage*"') do (if exist "%%c" rd/q/s "%%c")>NUL 2>NUL
- for /f "delims=" %%d in ('dir/ad/b/s "%%i\User Data\*Media Cache*"') do (if exist "%%d" rd/q/s "%%d")>NUL 2>NUL
- )
-
- wmic nteventlog get filename
- wmic nteventlog where filename="AppEvent" call cleareventlog
- wmic nteventlog where filename="SecEvent" call cleareventlog
- wmic nteventlog where filename="SysEvent" call cleareventlog
-
- exit
复制代码
11月20号更新
请大家看看代码中是否存在错误或者不合理或者不够简洁的地方。谢谢
作者: BAT-VBS 时间: 2012-11-14 20:07
- for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do (
- for /d %%i in ("%%a %%b\*.*") do (
- rd /q /s "%%i"
- )
- del /f /q /s /a "%%a %%b\*.*"
- )
复制代码
作者: crist 时间: 2012-11-15 14:55
回复 2# BAT-VBS
请问这段是哪里错?确实引号?
作者: crist 时间: 2012-11-15 15:27
BAT-VBS 发表于 2012-11-14 20:07
我将这段代码改成这样了,这回应该没错了吧?- for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do (
- if exist "%%a %%b\*.*" del/f/q/s/a "%%a %%b\*.*" >NUL 2>NUL
- for /d %%i in ("%%a %%b\*.*") do (if exist "%%i" rd/q/s "%%i")>NUL 2>NUL
- )
复制代码
作者: BAT-VBS 时间: 2012-11-15 17:26
回复 4# crist
不是错,是建议缩进。
作者: crist 时间: 2012-11-17 16:34
这样可以了吗?- @echo off
- rem 记录系统注销时间
- set time=%time: =0%
- echo>>%systemroot%\system32\LoginAndLogoutRecord.Log logout time: %date% %time%
- rem 正在清理注册表...
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Data" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Recent Files" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\PowerPoint\Recent File List" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\WinRAR\ArcHistory" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Adobe\MediaBrowser\MRU\Photoshop\FileList" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Search Assistant\ACMru" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\KMPlayer\KMP2.0" /v "LastFileName" /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" /va /f >NUL 2>NUL
- reg delete "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs" /va /f >NUL 2>NUL
- rem 查询IE缓存位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache>%temp%\cleantmp.txt
- rem 查询cookies位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cookies>>%temp%\cleantmp.txt
- rem 查询历史纪录位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v History>>%temp%\cleantmp.txt
- rem 查询NetHood位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v NetHood>>%temp%\cleantmp.txt
- rem 查询Recent位置
- reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Recent>>%temp%\cleantmp.txt
- for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do (
- if exist "%%a %%b\*.*" del/f/q/s/a "%%a %%b\*.*" >NUL 2>NUL
- for /d %%i in ("%%a %%b\*.*") do (if exist "%%i" rd/q/s "%%i")>NUL 2>NUL
- )
- del/f/q/a %temp%\cleantmp.txt >NUL 2>NUL
- rem 正在清理磁盘垃圾...
- del/f/q/s/a "%temp%\*.*" >NUL 2>NUL
- del/f/q/s/a "%systemroot%\Temp\*.*" >NUL 2>NUL
- del/f/q/s/a "%systemroot%\Prefetch\*.*" >nul 2>nul
- if exist "%systemdrive%\Temp" rd/q/s "%systemdrive%\Temp" >nul 2>nul
-
- for /d %%a in ("%systemroot%\$*$") do (rd/q/s "%%a")>NUL 2>NUL
- for /d %%a in ("%temp%\*.*") do (rd/q/s "%%a")>NUL 2>NUL
- for /d %%a in ("%tmp%\*.*") do (rd/q/s "%%a")>NUL 2>NUL
-
- for /f "delims=" %%i in ('dir/ad-h/b/o "%systemdrive%\Documents and Settings"') do (
- del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Cookies\*.txt" >nul 2>nul
- del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Local Settings\temp\*.*" >nul 2>nul
- del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Local Settings\Temporary Internet Files\*.*" >nul 2>nul
- del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\recent\*.*" >nul 2>nul
- for /f "tokens=1 delims= " %%b in ('dir/ad/b/o "%systemdrive%\Documents and Settings\%%i\Local Settings\temp"') do (rd/q/s "%systemdrive%\Documents and Settings\%%i\Local Settings\temp\%%b")>nul 2>nul
- for /f "tokens=1 delims= " %%d in ('dir/ad/b/o "%systemdrive%\Documents and Settings\%%i\Local Settings\Temporary Internet Files"') do (rd/q/s "%systemdrive%\Documents and Settings\%%i\Local Settings\Temporary Internet Files\%%d")>nul 2>nul
- )
-
- for /f "delims=" %%i in ('dir/ad/b/s/o "%systemdrive%\Documents and Settings\Chrome"') do (
- del/f/q/s/a "%%i\User Data\*Archived*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Cookies*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*History*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Index*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*journal*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Links*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Session*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Shortcuts*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Sites*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*Tabs*" >NUL 2>NUL
- del/f/q/s/a "%%i\User Data\*.bak" >NUL 2>NUL
-
- for /f "delims=" %%a in ('dir/ad/b/s "%%i\User Data\*cache*"') do (if exist "%%a" rd/q/s "%%a")>NUL 2>NUL
- for /f "delims=" %%b in ('dir/ad/b/s "%%i\User Data\*databases*"') do (if exist "%%b" rd/q/s "%%b")>NUL 2>NUL
- for /f "delims=" %%c in ('dir/ad/b/s "%%i\User Data\*Local Storage*"') do (if exist "%%c" rd/q/s "%%c")>NUL 2>NUL
- for /f "delims=" %%d in ('dir/ad/b/s "%%i\User Data\*Media Cache*"') do (if exist "%%d" rd/q/s "%%d")>NUL 2>NUL
- )
-
- wmic nteventlog get filename
- wmic nteventlog where filename="AppEvent" call cleareventlog
- wmic nteventlog where filename="SecEvent" call cleareventlog
- wmic nteventlog where filename="SysEvent" call cleareventlog
-
- exit
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |