查看: 78|回复: 1

Windows实用脚本集合:一键启动、右键菜单切换与开发环境管理

[复制链接]
发表于 2 小时前 | 显示全部楼层 |阅读模式
在日常Windows使用和开发工作中,重复性操作往往耗费大量时间。利用批处理(.bat)和VBScript(.vbs)编写自动化脚本,可以显著提升效率。本文将分享一组经过实践验证的Windows脚本,涵盖系统快捷操作、右键菜单定制、Java多版本切换、定时关机、服务控制以及开机自启配置,所有脚本均可在Gitee和GitHub上获取。

一键启动多个软件
开发或办公时,常需依次打开QQ、微信等应用。借助如下脚本,双击即可同时启动多个程序:
  1. @echo off
  2. mode con lines=30 cols=100
  3. title= 一键启动
  4. :main
  5. cls
  6. color 2e
  7. echo %time%
  8. echo.Martin
  9. color 1f
  10. echo.-----------------------------------------------------------
  11. echo Starting QQ...
  12. start "" "C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe"
  13. echo Starting WeChat...
  14. start "" "C:\Program Files\Tencent\WeChat\WeChat.exe"
  15. :end
  16. echo 执行完成
复制代码
只需将需要启动的软件路径替换为自己的安装目录,即可实现一键启动。

Win11右键菜单切换
Windows 11默认的右键菜单折叠了较多选项,许多用户更习惯Windows 10的经典样式。以下脚本通过注册表操作,实现两种菜单的快速切换:
  1. @echo off
  2. >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
  3. if %errorlevel%==0 (
  4. goto UACPrompt
  5. ) else ( goto gotAdmin )
  6. :UACPrompt
  7. echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
  8. echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
  9. "%temp%\getadmin.vbs"
  10. exit /B
  11. :gotAdmin
  12. if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
  13. @echo off
  14. echo.
  15. echo =============================================
  16. echo 右键菜单类型
  17. echo 1 (Win10旧版右键菜单)
  18. echo 2 (Win11新版右键菜单)
  19. echo =============================================
  20. :select
  21. set /p opt=请选择操作:
  22. if %opt%==1 (
  23. echo 正在开启Win10旧版右键菜单》》》》》》》》》
  24. reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
  25. )
  26. if %opt%==2 (
  27. echo 正在恢复Win11新版右键菜单》》》》》》》》》
  28. reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
  29. )
  30. @echo off
  31. echo *************************************
  32. echo * *
  33. echo * 重启任务管理器... *
  34. echo * *
  35. echo *************************************
  36. taskkill /f /im explorer.exe & start explorer.exe
  37. pause
复制代码
运行后选择选项1即可恢复Win10风格菜单,选择2则切回默认样式,修改后自动重启资源管理器生效。

Java多版本切换
开发中经常需要在JDK 1.8、JDK 17等不同版本间切换。以下脚本通过修改系统环境变量实现:
  1. @echo off
  2. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  3. cd /d "%~dp0"
  4. :init
  5. set JAVA_HOME8=C:\fastwork\Java\jdk1.8
  6. set JAVA_HOME17=C:\fastwork\Java\jdk17
  7. :start
  8. echo 当前使用的JDK 版本:
  9. java -version
  10. echo.
  11. echo =============================================
  12. echo jdk版本列表
  13. echo 1 (1.8)
  14. echo 2 (17)
  15. echo =============================================
  16. :select
  17. set /p opt=请选择jdk版本:
  18. if %opt%==1 (
  19. set TARGET_JAVA_HOME=%JAVA_HOME8%
  20. )
  21. if %opt%==2 (
  22. set TARGET_JAVA_HOME=%JAVA_HOME17%
  23. )
  24. echo 当前选择的Java路径:%TARGET_JAVA_HOME%
  25. wmic ENVIRONMENT where "name='JAVA_HOME'" delete
  26. wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="%TARGET_JAVA_HOME%"
  27. call RefreshEnv
  28. echo 请按任意键退出!
  29. pause>nul
复制代码
注意:修改环境变量后,必须通过Win+R打开新cmd窗口验证java -version;Android Studio中的Terminal需重启AS才能生效。

定时关机与取消
有时需要临时定时关机,以下脚本提供交互式配置:
  1. @echo off
  2. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  3. cd /d "%~dp0"
  4. @echo off
  5. echo.
  6. echo =============================================
  7. echo 定时关机
  8. echo 0(取消所有定时关机)
  9. echo 1小时(3600)
  10. echo 2小时(7200)
  11. echo 3小时(10800)
  12. echo 4小时(14400)
  13. echo 5小时(18000)
  14. echo 6小时(21600)
  15. echo 7小时(25200)
  16. echo 8小时(28800)
  17. echo 9小时(32400)
  18. echo 10小时(36000)
  19. echo =============================================
  20. :prompt
  21. :select
  22. set /p opt=请选择:
  23. if %opt%==0 (
  24. set SHUTDOWN_DELAY=0
  25. )else if %opt%==1 (
  26. set SHUTDOWN_DELAY=1
  27. )else if %opt%==2 (
  28. set SHUTDOWN_DELAY=2
  29. )else if %opt%==3 (
  30. set SHUTDOWN_DELAY=3
  31. )else if %opt%==4 (
  32. set SHUTDOWN_DELAY=4
  33. )else if %opt%==5 (
  34. set SHUTDOWN_DELAY=5
  35. )else if %opt%==6 (
  36. set SHUTDOWN_DELAY=6
  37. )else if %opt%==7 (
  38. set SHUTDOWN_DELAY=7
  39. )else if %opt%==8 (
  40. set SHUTDOWN_DELAY=8
  41. )else if %opt%==9 (
  42. set SHUTDOWN_DELAY=9
  43. )else if %opt%==10 (
  44. set SHUTDOWN_DELAY=10
  45. )else (
  46. echo 输入无效!请输入有效的选择。
  47. goto prompt
  48. )
  49. setlocal enabledelayedexpansion
  50. if %SHUTDOWN_DELAY%==0 (
  51. echo 已取消所有自动关机!!!
  52. Shutdown -a
  53. )else (
  54. echo %SHUTDOWN_DELAY%小时后自动关机》》》》》》》》》
  55. set /a result=%SHUTDOWN_DELAY% * 3600
  56. Shutdown -s -f -t !result!
  57. )
  58. echo 操作已完成!可再次修改设置。
  59. goto prompt
复制代码
另外,提供两个快速脚本:定时关机_N小时.bat(直接指定秒数,例如Shutdown -s -f -t 10800表示3小时后关机)和定时关机_取消.bat(Shutdown -a)。

控制服务的开启与关闭
某些硬件或软件服务不需要常驻时,可通过脚本手动控制。以某品牌移动硬盘服务TosHddscSvc为例:
  1. @echo off
  2. >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
  3. if %errorlevel%==0 (
  4. goto UACPrompt
  5. ) else ( goto gotAdmin )
  6. :UACPrompt
  7. echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
  8. echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
  9. "%temp%\getadmin.vbs"
  10. exit /B
  11. :gotAdmin
  12. if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
  13. @echo off
  14. echo.
  15. echo =============================================
  16. echo 操作类型
  17. echo 1 (开启服务)
  18. echo 2 (关闭服务)
  19. echo =============================================
  20. :select
  21. set /p opt=请选择操作:
  22. if %opt%==1 (
  23. echo 开启服务
  24. net start "TosHddscSvc"
  25. )
  26. if %opt%==2 (
  27. echo 关闭服务
  28. net stop "TosHddscSvc"
  29. )
  30. setlocal enabledelayedexpansion
  31. echo 执行结束,脚本5秒后自动退出...
  32. set /a count=5
  33. :loop
  34. echo 剩余时间:%count% 秒
  35. timeout /t 1 >nul
  36. set /a count-=1
  37. if %count% gtr 0 (
  38. goto loop
  39. ) else (
  40. echo 脚本退出
  41. )
  42. endlocal
  43. exit
复制代码
将服务名称替换为目标服务即可。

设置开机启动脚本
利用VBScript启动批处理文件,再将VBS快捷方式放入启动文件夹。首先创建xxx.vbs:
  1. set ws=wscript.createobject("wscript.shell")
  2. ws.run "xxxxxx.bat /start",0
复制代码
将上述VBS文件或其快捷方式放入以下目录:
C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
(可通过Win+R输入shell:startup快速打开)。

实用案例:Jupyter Notebook开机自启
创建jupyter_startup.vbs:
  1. Dim wsh
  2. Set wsh = createobject("wscript.Shell")
  3. wsh.run "cmd /c jupyter notebook --notebook-dir='C:\fastwork\Python\JupyterNotebook' --no-browser", 0, true
  4. Set wsh = Nothing
复制代码
Redis服务开机自启:
service_redis_startup.vbs:
  1. set ws=wscript.createobject("wscript.shell")
  2. ws.run "service_start.bat /start",0
复制代码
service_start.bat:
  1. @echo off
  2. echo redis-server start......
  3. title redis-server
  4. set ENV_HOME="C:\fastwork\Redis"
  5. C:
  6. color 0a
  7. cd %ENV_HOME%
  8. redis-server.exe redis.windows.conf
  9. exit
复制代码

其他实用工具
项目还提供了两个Java jar包:FileCleaner.jar用于清理Android/Java项目的编译临时目录(如build、classes、target);FileSizeCalculator.jar用于按MB为单位统计目录下所有文件大小,便于定位大文件。使用方式:java -jar xxx.jar。

以上脚本均托管于开源仓库,可直接下载使用。注意:部分脚本需要管理员权限,如遇360、电脑管家等安全软件提醒,请勾选信任允许。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层

Re: Windows实用脚本集合:一键启动、右键菜单切换与开发环境管理

感谢分享!这些脚本真的很实用,特别是Win11右键菜单切换那个,我每次右键都要多点一下展开,太麻烦了,用这个直接一键切回旧版风格,舒服多了。Java多版本切换也很有用,我平时在JDK8和17之间来回改环境变量,有了这个就不用每次都手动去系统属性里改了。不过想请教一下,一键启动那个脚本里,如果某个软件路径不存在或者被卸载了,脚本会不会卡住?有没有办法加个判断跳过呢?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-5 18:21 , Processed in 0.025204 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部