# Windows Script **Repository Path**: javakam/windows-script ## Basic Information - **Project Name**: Windows Script - **Description**: Windows 常用脚本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 14 - **Forks**: 7 - **Created**: 2023-08-03 - **Last Updated**: 2025-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **2025年12月4日 15:52:18** 掘金地址: [https://juejin.cn/post/7260457485478723584](https://juejin.cn/post/7260457485478723584) Windows常用脚本放到了`Gitee`和`GitHub`。 ✨项目地址: - `https://gitee.com/javakam/windows-script` - `https://github.com/javakam/Windows-Scripts` ### 常用脚本(Batchfile & VBScript) #### 1. `一键启动.bat` 一次双击开启多个软件, 不用逐个软件双击打开, 非常方便! ```vb @echo off mode con lines=30 cols=100 title= 一键启动 :main cls color 2e echo %time% echo.Martin's Blog https://javakam.github.io color 1f echo.----------------------------------------------------------- echo Starting QQ... start "" "C:\Program Files (x86)\Tencent\QQ\Bin\QQScLauncher.exe" echo Starting WeChat... start "" "C:\Program Files\Tencent\WeChat\WeChat.exe" :end echo 执行完成 ``` #### 2. `Win11改用传统右键菜单.bat` 切换Win11的右键菜单 或 Win10旧版菜单。例如切换到Win10旧版右键菜单: ```vb @echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) @echo off echo. echo ============================================= echo 右键菜单类型 echo 1 (Win10旧版右键菜单) echo 2 (Win11新版右键菜单) echo ============================================= :select set /p opt=请选择操作: if %opt%==1 ( echo 正在开启Win10旧版右键菜单》》》》》》》》》 reg add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve ) if %opt%==2 ( echo 正在恢复Win11新版右键菜单》》》》》》》》》 reg delete "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f ) @echo off echo ************************************* echo * * echo * 重启任务管理器... * echo * * echo ************************************* taskkill /f /im explorer.exe & start explorer.exe pause ``` ![右键菜单切换](/文章图片/image_001.png) 两种菜单样式随时切换, 很方便。 #### 3. `Java多版本切换` ①以java1.8和java17为例, 目录结构为: ![Java多版本切换](/文章图片/image_002.png) ②环境变量配置 ![环境变量配置](/文章图片/image_003.png) `Path`: ![环境变量配置Path](/文章图片/image_004.png) ③`SwitchJDK.bat`源码及运行效果: ```vb @echo off %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0" @echo off rem --- Base Config 配置JDK的安装目录 --- :init set JAVA_HOME8=C:\fastwork\Java\jdk1.8 set JAVA_HOME17=C:\fastwork\Java\jdk17 :start echo 当前使用的JDK 版本: java -version echo. echo ============================================= echo jdk版本列表 echo 1 (1.8) echo 2 (17) echo ============================================= :select set /p opt=请选择jdk版本: if %opt%==1 ( set TARGET_JAVA_HOME=%JAVA_HOME8% ) if %opt%==2 ( set TARGET_JAVA_HOME=%JAVA_HOME17% ) echo 当前选择的Java路径:%TARGET_JAVA_HOME% wmic ENVIRONMENT where "name='JAVA_HOME'" delete wmic ENVIRONMENT create name="JAVA_HOME",username="",VariableValue="%TARGET_JAVA_HOME%" rem -- refresh env --- call RefreshEnv echo 请按任意键退出! pause>nul ``` ![jdk版本列表](/文章图片/image_005.png) 注: 修改环境变量后, 必须使用`Win+R`打开`cmd`的新窗口,再输入`java -version`进行验证才准确。此时`Android Studio`中的`Terminal`验证显示仍是旧的`java`环境, 重启AS即可。 #### 4. `Windows设置/取消定时关机` `定时关机.bat` ```vb @echo off %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0" @echo off echo. echo ============================================= echo 定时关机 echo 0(取消所有定时关机) echo 1小时(3600) echo 2小时(7200) echo 3小时(10800) echo 4小时(14400) echo 5小时(18000) echo 6小时(21600) echo 7小时(25200) echo 8小时(28800) echo 9小时(32400) echo 10小时(36000) echo ============================================= :prompt :select set /p opt=请选择: if %opt%==0 ( set SHUTDOWN_DELAY=0 )else if %opt%==1 ( set SHUTDOWN_DELAY=1 )else if %opt%==2 ( set SHUTDOWN_DELAY=2 )else if %opt%==3 ( set SHUTDOWN_DELAY=3 )else if %opt%==4 ( set SHUTDOWN_DELAY=4 )else if %opt%==5 ( set SHUTDOWN_DELAY=5 )else if %opt%==6 ( set SHUTDOWN_DELAY=6 )else if %opt%==7 ( set SHUTDOWN_DELAY=7 )else if %opt%==8 ( set SHUTDOWN_DELAY=8 )else if %opt%==9 ( set SHUTDOWN_DELAY=9 )else if %opt%==10 ( set SHUTDOWN_DELAY=10 )else ( echo 输入无效!请输入有效的选择。 goto prompt ) setlocal enabledelayedexpansion if %SHUTDOWN_DELAY%==0 ( echo 已取消所有自动关机!!! Shutdown -a )else ( echo %SHUTDOWN_DELAY%小时后自动关机》》》》》》》》》 set /a result=%SHUTDOWN_DELAY% * 3600 Shutdown -s -f -t !result! ) echo 操作已完成!可再次修改设置。 goto prompt ::pause ``` 效果图: ![定时关机_N小时](/文章图片/image_006.png) `定时关机_N小时.bat` ```vb @REM echo 定时关机 @REM echo 0(取消所有定时关机) @REM echo 1小时(3600) @REM echo 2小时(7200) @REM echo 3小时(10800) @REM echo 4小时(14400) @REM echo 5小时(18000) @REM echo 6小时(21600) @REM echo 7小时(25200) @REM echo 8小时(28800) @REM echo 9小时(32400) @REM echo 10小时(36000) Shutdown -s -f -t 10800 ``` `定时关机_取消.bat` ```vb Shutdown -a ``` #### 5. 控制某个服务的开启/关闭 以某品牌移动硬盘的服务为例: 右键开始选择`计算机管理`->`服务和应用程序`中双击`服务`->找到指定`服务`并查看属性 ![控制某个服务](/文章图片/image_007.png) 把服务名称放到`net start/stop `后面即可: ```vb @echo off >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" if '%errorlevel%' NEQ '0' ( goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" exit /B :gotAdmin if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" ) @echo off echo. echo ============================================= echo 操作类型 echo 1 (开启服务) echo 2 (关闭服务) echo ============================================= :select set /p opt=请选择操作: if %opt%==1 ( echo 开启服务 net start "TosHddscSvc" ) if %opt%==2 ( echo 关闭服务 net stop "TosHddscSvc" ) ::pause setlocal enabledelayedexpansion echo 执行结束,脚本5秒后自动退出... set /a count=5 :loop echo 剩余时间:%count% 秒 timeout /t 1 >nul set /a count-=1 if %count% gtr 0 ( goto loop ) else ( echo 脚本退出 ) endlocal exit ``` 执行效果(此处设置了bat倒计时自动退出): ![控制某个服务开启](/文章图片/image_008.png) ![控制某个服务关闭](/文章图片/image_009.png) ### 设置开机启动脚本 就两步: ①新建`xxx.vbs`, 设置需要开机启动的`bat`文件名: ```vb set ws=wscript.createobject("wscript.shell") ws.run "xxxxxx.bat /start",0 ``` ②把`vbs`脚本源文件或`快捷方式`放到 `C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup` (`Win+R`输入`shell:startup` 可快速打开) 目录下, 开机后会自动执行。如下图所示: ![开机启动设置vbs](/文章图片/image_010.png) #### 附1 `jupyter`开机启动`vbs` `jupyter_startup.vbs` ```vbs Dim wsh Set wsh = createobject("wscript.Shell") '1. 使用配置文件启动 jupyter_notebook_config.py 'wsh.run "cmd /c jupyter notebook --no-browser", 0, true '2. 直接进入路径启动[推荐] wsh.run "cmd /c jupyter notebook --notebook-dir='C:\fastwork\Python\JupyterNotebook' --no-browser", 0, true Set wsh = Nothing ``` 其中`JupyterNotebook`为存放`*.ipynb`文件的目录: ![ipynb目录](/文章图片/image_011.png) #### 附2 `redis`开机启动`vbs` `service_redis_startup.vbs` ```vbs set ws=wscript.createobject("wscript.shell") ws.run "service_start.bat /start",0 ``` `service_start.bat` ```vb ::启动redis的命令 @echo off ::这是简单的输出,相当于java中的system.out.println() echo redis-server start...... ::设置启动窗口的标题 title redis-server ::定义一个变量ENV_HOME set ENV_HOME="C:\fastwork\Redis" C: ::设置启动窗口的颜色 color 0a cd %ENV_HOME% redis-server.exe redis.windows.conf exit ``` ### 常用jar包 源码地址: 使用方法: `java -jar xxx.jar` `FileCleaner.jar` 用于清理`Android/Java`项目的临时编译目录,如build classes target 等 `FileSizeCalculator.jar` 用于查看目录中所有文件的大小,目前仅支持MB为单位,便于删除大文件 ### 常用Python脚本 todo 2023年8月9日 15:16:41 ### ✨下载地址 `https://gitee.com/javakam/windows-script` `https://github.com/javakam/Windows-Scripts` > 注: 如有360、电脑管家等安全软件提醒,请勾选信任允许和不再提醒!