Board logo

标题: [系统相关] 请大家看看我这个关机脚本有没有错误? [打印本页]

作者: crist    时间: 2012-11-14 16:01     标题: 请大家看看我这个关机脚本有没有错误?

本帖最后由 crist 于 2012-11-20 17:12 编辑

根据网上的一些清理垃圾的批处理,我做了一个批处理作为关机脚本,代码如下:
  1. @echo off
  2. rem 记录系统注销时间
  3. set time=%time: =0%
  4. echo>>%systemroot%\system32\LoginAndLogoutRecord.Log logout time: %date% %time%
  5. rem 正在清理注册表...
  6. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Data" /va /f >NUL 2>NUL
  7. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Recent Files" /va /f >NUL 2>NUL
  8. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\PowerPoint\Recent File List" /va /f >NUL 2>NUL
  9. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist" /va /f >NUL 2>NUL
  10. reg delete "HKEY_CURRENT_USER\Software\WinRAR\ArcHistory" /va /f >NUL 2>NUL
  11. reg delete "HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory" /va /f >NUL 2>NUL
  12. reg delete "HKEY_CURRENT_USER\Software\Adobe\MediaBrowser\MRU\Photoshop\FileList" /va /f >NUL 2>NUL
  13. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Search Assistant\ACMru" /va /f >NUL 2>NUL
  14. reg delete "HKEY_CURRENT_USER\Software\KMPlayer\KMP2.0" /v "LastFileName" /f >NUL 2>NUL
  15. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" /va /f >NUL 2>NUL
  16. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU" /va /f >NUL 2>NUL
  17. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU" /va /f >NUL 2>NUL
  18. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs" /va /f >NUL 2>NUL
  19. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" /va /f >NUL 2>NUL
  20. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs" /va /f >NUL 2>NUL
  21. rem 查询IE缓存位置
  22. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache>%temp%\cleantmp.txt
  23. rem 查询cookies位置
  24. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cookies>>%temp%\cleantmp.txt
  25. rem 查询历史纪录位置
  26. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v History>>%temp%\cleantmp.txt
  27. rem 查询NetHood位置
  28. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v NetHood>>%temp%\cleantmp.txt
  29. rem 查询Recent位置
  30. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Recent>>%temp%\cleantmp.txt
  31. for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do (
  32.   if exist "%%a %%b\*.*" del/f/q/s/a "%%a %%b\*.*" >NUL 2>NUL
  33.   for /d %%i in ("%%a %%b\*.*") do (if exist "%%i" rd/q/s "%%i")>NUL 2>NUL
  34. )
  35. del/f/q/a %temp%\cleantmp.txt >NUL 2>NUL
  36. rem 正在清理磁盘垃圾...
  37. del/f/q/s/a "%temp%\*.*" >NUL 2>NUL
  38. del/f/q/s/a "%systemroot%\Temp\*.*" >NUL 2>NUL
  39. del/f/q/s/a "%systemroot%\Prefetch\*.*" >nul 2>nul
  40. if exist "%systemdrive%\Temp" rd/q/s "%systemdrive%\Temp" >nul 2>nul
  41. for /d %%a in ("%systemroot%\$*$") do (rd/q/s "%%a")>NUL 2>NUL
  42. for /d %%a in ("%temp%\*.*") do (rd/q/s "%%a")>NUL 2>NUL
  43. for /d %%a in ("%tmp%\*.*") do (rd/q/s "%%a")>NUL 2>NUL
  44. for /f "delims=" %%i in ('dir/ad-h/b/o "%systemdrive%\Documents and Settings"') do (
  45.   del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Cookies\*.txt" >nul 2>nul
  46.   del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Local Settings\temp\*.*" >nul 2>nul
  47.   del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Local Settings\Temporary Internet Files\*.*" >nul 2>nul
  48.   del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\recent\*.*" >nul 2>nul
  49.   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
  50.   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
  51. )
  52. for /f "delims=" %%i in ('dir/ad/b/s/o "%systemdrive%\Documents and Settings\Chrome"') do (
  53.   del/f/q/s/a "%%i\User Data\*Archived*" >NUL 2>NUL
  54.   del/f/q/s/a "%%i\User Data\*Cookies*" >NUL 2>NUL
  55.   del/f/q/s/a "%%i\User Data\*History*" >NUL 2>NUL
  56.   del/f/q/s/a "%%i\User Data\*Index*" >NUL 2>NUL
  57.   del/f/q/s/a "%%i\User Data\*journal*" >NUL 2>NUL
  58.   del/f/q/s/a "%%i\User Data\*Links*" >NUL 2>NUL
  59.   del/f/q/s/a "%%i\User Data\*Session*" >NUL 2>NUL
  60.   del/f/q/s/a "%%i\User Data\*Shortcuts*" >NUL 2>NUL
  61.   del/f/q/s/a "%%i\User Data\*Sites*" >NUL 2>NUL
  62.   del/f/q/s/a "%%i\User Data\*Tabs*" >NUL 2>NUL
  63.   del/f/q/s/a "%%i\User Data\*.bak" >NUL 2>NUL
  64.   for /f "delims=" %%a in ('dir/ad/b/s "%%i\User Data\*cache*"') do (if exist "%%a" rd/q/s "%%a")>NUL 2>NUL
  65.   for /f "delims=" %%b in ('dir/ad/b/s "%%i\User Data\*databases*"') do (if exist "%%b" rd/q/s "%%b")>NUL 2>NUL
  66.   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
  67.   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
  68. )
  69. wmic nteventlog get filename
  70. wmic nteventlog where filename="AppEvent" call cleareventlog
  71. wmic nteventlog where filename="SecEvent" call cleareventlog
  72. wmic nteventlog where filename="SysEvent" call cleareventlog
  73. exit
复制代码
11月20号更新
请大家看看代码中是否存在错误或者不合理或者不够简洁的地方。谢谢
作者: BAT-VBS    时间: 2012-11-14 20:07

  1. for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do (
  2.     for /d %%i in ("%%a %%b\*.*") do (
  3.         rd /q /s "%%i"
  4.     )
  5.     del /f /q /s /a "%%a %%b\*.*"
  6. )
复制代码

作者: crist    时间: 2012-11-15 14:55

回复 2# BAT-VBS


    请问这段是哪里错?确实引号?
作者: crist    时间: 2012-11-15 15:27

BAT-VBS 发表于 2012-11-14 20:07



    我将这段代码改成这样了,这回应该没错了吧?
  1. for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do (
  2. if exist "%%a %%b\*.*" del/f/q/s/a "%%a %%b\*.*" >NUL 2>NUL
  3. for /d %%i in ("%%a %%b\*.*") do (if exist "%%i" rd/q/s "%%i")>NUL 2>NUL
  4. )
复制代码

作者: BAT-VBS    时间: 2012-11-15 17:26

回复 4# crist


    不是错,是建议缩进。
作者: crist    时间: 2012-11-17 16:34

这样可以了吗?
  1. @echo off
  2. rem 记录系统注销时间
  3. set time=%time: =0%
  4. echo>>%systemroot%\system32\LoginAndLogoutRecord.Log logout time: %date% %time%
  5. rem 正在清理注册表...
  6. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Word\Data" /va /f >NUL 2>NUL
  7. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Recent Files" /va /f >NUL 2>NUL
  8. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\PowerPoint\Recent File List" /va /f >NUL 2>NUL
  9. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist" /va /f >NUL 2>NUL
  10. reg delete "HKEY_CURRENT_USER\Software\WinRAR\ArcHistory" /va /f >NUL 2>NUL
  11. reg delete "HKEY_CURRENT_USER\Software\WinRAR\DialogEditHistory" /va /f >NUL 2>NUL
  12. reg delete "HKEY_CURRENT_USER\Software\Adobe\MediaBrowser\MRU\Photoshop\FileList" /va /f >NUL 2>NUL
  13. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Search Assistant\ACMru" /va /f >NUL 2>NUL
  14. reg delete "HKEY_CURRENT_USER\Software\KMPlayer\KMP2.0" /v "LastFileName" /f >NUL 2>NUL
  15. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU" /va /f >NUL 2>NUL
  16. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedMRU" /va /f >NUL 2>NUL
  17. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU" /va /f >NUL 2>NUL
  18. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs" /va /f >NUL 2>NUL
  19. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\StreamMRU" /va /f >NUL 2>NUL
  20. reg delete "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs" /va /f >NUL 2>NUL
  21. rem 查询IE缓存位置
  22. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache>%temp%\cleantmp.txt
  23. rem 查询cookies位置
  24. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cookies>>%temp%\cleantmp.txt
  25. rem 查询历史纪录位置
  26. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v History>>%temp%\cleantmp.txt
  27. rem 查询NetHood位置
  28. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v NetHood>>%temp%\cleantmp.txt
  29. rem 查询Recent位置
  30. reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Recent>>%temp%\cleantmp.txt
  31. for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do (
  32.   if exist "%%a %%b\*.*" del/f/q/s/a "%%a %%b\*.*" >NUL 2>NUL
  33.   for /d %%i in ("%%a %%b\*.*") do (if exist "%%i" rd/q/s "%%i")>NUL 2>NUL
  34. )
  35. del/f/q/a %temp%\cleantmp.txt >NUL 2>NUL
  36. rem 正在清理磁盘垃圾...
  37. del/f/q/s/a "%temp%\*.*" >NUL 2>NUL
  38. del/f/q/s/a "%systemroot%\Temp\*.*" >NUL 2>NUL
  39. del/f/q/s/a "%systemroot%\Prefetch\*.*" >nul 2>nul
  40. if exist "%systemdrive%\Temp" rd/q/s "%systemdrive%\Temp" >nul 2>nul
  41. for /d %%a in ("%systemroot%\$*$") do (rd/q/s "%%a")>NUL 2>NUL
  42. for /d %%a in ("%temp%\*.*") do (rd/q/s "%%a")>NUL 2>NUL
  43. for /d %%a in ("%tmp%\*.*") do (rd/q/s "%%a")>NUL 2>NUL
  44. for /f "delims=" %%i in ('dir/ad-h/b/o "%systemdrive%\Documents and Settings"') do (
  45.   del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Cookies\*.txt" >nul 2>nul
  46.   del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Local Settings\temp\*.*" >nul 2>nul
  47.   del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\Local Settings\Temporary Internet Files\*.*" >nul 2>nul
  48.   del/f/q/s/a "%systemdrive%\Documents and Settings\%%i\recent\*.*" >nul 2>nul
  49.   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
  50.   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
  51. )
  52. for /f "delims=" %%i in ('dir/ad/b/s/o "%systemdrive%\Documents and Settings\Chrome"') do (
  53.   del/f/q/s/a "%%i\User Data\*Archived*" >NUL 2>NUL
  54.   del/f/q/s/a "%%i\User Data\*Cookies*" >NUL 2>NUL
  55.   del/f/q/s/a "%%i\User Data\*History*" >NUL 2>NUL
  56.   del/f/q/s/a "%%i\User Data\*Index*" >NUL 2>NUL
  57.   del/f/q/s/a "%%i\User Data\*journal*" >NUL 2>NUL
  58.   del/f/q/s/a "%%i\User Data\*Links*" >NUL 2>NUL
  59.   del/f/q/s/a "%%i\User Data\*Session*" >NUL 2>NUL
  60.   del/f/q/s/a "%%i\User Data\*Shortcuts*" >NUL 2>NUL
  61.   del/f/q/s/a "%%i\User Data\*Sites*" >NUL 2>NUL
  62.   del/f/q/s/a "%%i\User Data\*Tabs*" >NUL 2>NUL
  63.   del/f/q/s/a "%%i\User Data\*.bak" >NUL 2>NUL
  64.   for /f "delims=" %%a in ('dir/ad/b/s "%%i\User Data\*cache*"') do (if exist "%%a" rd/q/s "%%a")>NUL 2>NUL
  65.   for /f "delims=" %%b in ('dir/ad/b/s "%%i\User Data\*databases*"') do (if exist "%%b" rd/q/s "%%b")>NUL 2>NUL
  66.   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
  67.   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
  68. )
  69. wmic nteventlog get filename
  70. wmic nteventlog where filename="AppEvent" call cleareventlog
  71. wmic nteventlog where filename="SecEvent" call cleareventlog
  72. wmic nteventlog where filename="SysEvent" call cleareventlog
  73. exit
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2