找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 文档 工具 设计
查看: 53|回复: 0

整理一个常用批处理bat脚本整合分享

[复制链接]

1万

主题

919

回帖

2万

积分

超级版主

教育辅助界扛把子

附加身份标识
精华
1
热心
2
听众
1
威望
57
贡献
11988
违规
0
书币
5681
注册时间
2020-4-8

论坛元老灌水之王

发表于 2022-11-23 00:11 | 显示全部楼层 |阅读模式
此bat脚本集成了一些常用的,下面代码块代码复制下来新建bat文件记事本保存为ANSI编码。贴上需要的
个人平时装机折腾的多,基本上没啥特别需求。大量需求封装系统镜像包时已经内置,个别的喜欢单独添加。

[Bash shell] 纯文本查看 复制代码
@echo off&PUSHD %~DP0&TITLE Windows便捷设置批处理脚本x%PROCESSOR_ARCHITECTURE:~-2%
color 0b
FOR /F "tokens=2 delims==" %%l IN ('wmic os get OSLanguage /Value') DO set OSLanguage=%%l
if "%OSLanguage%" NEQ "2052" (
        echo Your current operating system language is not Simplified Chinese, about to exit the current window!&pause&exit
)
:: 获取系统桌面路径以保存信息到本地
for /f "tokens=1,2,* " %%i in ('REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "desktop" ^| findstr /i /C:"REG_SZ"') do set "desktoppath=%%k"
:: 格式化桌面路径
set desktoppath=%desktoppath:\\=\%
if exist "%desktoppath%\MAC-INFO.txt" (
        del /F/Q %desktoppath%\MAC-INFO.txt
)
::【&&】 连接两个命令,当&&前的命令成功时,才执行&&后的命令。   
::【||】 连接两个命令,当||前的命令失败时,才执行||后的命令。
::自动下载需要借助curl指令,低版本系统可能缺少组件,请在[url]https://curl.se/download.html[/url]下载并添加环境变量
Rd "%WinDir%\system32\test_permissions" >NUL 2>NUL
Md "%WinDir%\System32\test_permissions" 2>NUL&&(goto :SelectMenuItem)||(goto :not_admin)
Rd "%WinDir%\System32\test_permissions" 2>NUL
 
rem 检查脚本是否以管理员身份运行WIn10+有效,win7可能无效!
rem net.exe session 1>NUL 2>NUL && (
rem    goto as_admin
rem ) || (
rem    goto not_admin
rem )
 
rem ****************************************************************************
:: 非管理员模式,强制重启脚本
:not_admin
        ::强制CMD窗口活动代码页编号为GBK简体中文936
        chcp 936>nul
        echo ******************************************************************
        echo ******************************************************************
        echo **                                                              **
        echo **                                                              **
        echo **   当前非管理员权限,正在强制重启脚本获取权限请稍候...        **
        echo **   执行修改中需要修改注册表,如果出现拦截请允许!             **
        echo **                                                              **
        echo **                                                              **
        echo ******************************************************************
        echo ******************************************************************
        %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
        cd /d "%~dp0"
 
:SelectMenuItem
        chcp 936>nul
        for /f "tokens=2 delims=={}" %%a in ('wmic PATH Win32_SystemEnclosure get ChassisTypes /value') do (
                if %%a==3 (
                        chcp|findstr /i "936" >nul && (
                                set ChassisTypes=【台式设备】
                        ) || (
                                set ChassisTypes=【Desktop computer】
                        )
                ) else if %%a==4 (
                        chcp|findstr /i "936" >nul && (
                                set ChassisTypes=【台式设备】
                        ) || (
                                set ChassisTypes=【Desktop computer】
                        )
                ) else if %%a==8 (
                        chcp|findstr /i "936" >nul && (
                                set ChassisTypes=【笔记本设备】
                        ) || (
                                set ChassisTypes=【Notebook Computer】
                        )
                ) else if %%a==9 (
                        chcp|findstr /i "936" >nul && (
                                set ChassisTypes=【笔记本设备】
                        ) || (
                                set ChassisTypes=【Notebook Computer】
                        )
                ) else if %%a==10 (
                        chcp|findstr /i "936" >nul && (
                                set ChassisTypes=【笔记本设备】
                        ) || (
                                set ChassisTypes=【Notebook Computer】
                        )
                )
        )
        echo   #############################################################
        echo   1、显示当前操作系统是否为永久激活或给出截止日期
        echo   #############################################################
        echo   2、列出当前操作系统的版本、密钥、激活类型及许可证状态
        echo   #############################################################
        echo   3、列出详细的激活信息,含激活ID、安装ID、激活截止日期
        echo   #############################################################
        echo   4、桌面右键菜单加入新建自定义扩展名文件的选项
        echo   #############################################################
        echo   5、桌面右键菜单加入“新建批处理文件”选项
        echo   #############################################################
        echo   6、添加桌面右键菜单“在此处打开命令行窗口”项
        echo   #############################################################
        echo   7、删除桌面右键菜单“在此处打开命令行窗口”项
        echo   #############################################################
        echo   8、修复程序打开方式异常
        echo   #############################################################
        echo   9、修复资源管理器打不开
        echo   #############################################################
        echo   10、查看本机无线网络连接所有Wifi名称与密码
        echo   #############################################################
        echo   11、获取网卡物理串号地址信息
        echo   #############################################################
        echo 输入编号回车执行查询/修改!(如果出现拦截请允许)&echo.
 
        set /p keywords=请输入编号,Enter键执行修改:
        if "%keywords%"=="1" (
                goto :GetXprInfo
        ) else if "%keywords%"=="2" (
                goto :GetdliInfo
        ) else if "%keywords%"=="3" (
                goto :GetdlvInfo
        ) else if "%keywords%"=="4" (
                goto :CreateCustomExtensionFileMenuItem
        ) else if "%keywords%"=="5" (
                goto :CreateBatchExtensionFileMenuItem
        ) else if "%keywords%"=="6" (
                goto :CreateBatchMenuItem
        ) else if "%keywords%"=="7" (
                goto :DeleteBatchMenuItem
        ) else if "%keywords%"=="8" (
                echo *************************************************************
                echo y|reg add "HKEY_CLASSES_ROOT\exefile\shell\open\command" /ve /t REG_SZ /d "\"%1\" %*" /f
                echo 修复完成! &TIMEOUT /T 5 &cls&goto :SelectMenuItem
        ) else if "%keywords%"=="9" (
                echo *************************************************************
                echo y|reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Shell /t REG_SZ /d "Explorer.exe" /f
                echo 修复完成! &TIMEOUT /T 5 &cls&goto :SelectMenuItem        
        ) else if "%keywords%"=="10" (
                goto :GetWlanInfo
        ) else if "%keywords%"=="11" (
                goto :GetMacAdressInfo
        ) else (
                cls&goto :SelectMenuItem
        )
        pause&exit
 
:GetXprInfo
        echo *************************************************************
        echo 当前%ChassisTypes%系统永久激活状态载入中,请稍等...
        slmgr.vbs -xpr
        TIMEOUT /T 5 &cls&goto :SelectMenuItem
 
:GetdliInfo
        echo *************************************************************
        echo 当前%ChassisTypes%系统版本、密钥、激活类型及许可证状态载入中,请稍等...
        slmgr.vbs -dli
        TIMEOUT /T 5 &cls&goto :SelectMenuItem
 
:GetdlvInfo
        echo *************************************************************
        echo 当前%ChassisTypes%系统激活信息载入中,请稍等...
        slmgr.vbs -dlv
        TIMEOUT /T 5 &cls&goto :SelectMenuItem
 
 
:CreateBatchExtensionFileMenuItem
        echo *************************************************************
        echo “Windows 批处理文件”右键菜单项添加中,请稍候...
        echo y|reg add "HKEY_CLASSES_ROOT\.bat\ShellNew" /v nullfile /t reg_sz /d "" /f
        echo y|reg add "HKEY_CLASSES_ROOT\.bat\ShellNew" /v FileName /t reg_expand_sz /d "" /f
        echo.&echo ****菜单项创建完成**** &TIMEOUT /T 5 &cls&goto :SelectMenuItem
 
:CreateCustomExtensionFileMenuItem
        echo *************************************************************
        echo 新建自定义扩展名文件右键菜单项添加中,请稍候...
        echo y|reg add "HKCR\Directory\Background\shell\WinXNew" /v "MUIVerb" /d "新建自定义文件" /f
        echo y|reg add "HKCR\Directory\Background\shell\WinXNew" /v "Position" /d "Bottom" /f
        echo y|reg add "HKCR\Directory\Background\shell\WinXNew" /v "SubCommands" /d "" /f
        echo y|reg add "HKCR\Directory\Background\shell\WinXNew" /v "SeparatorAfter" /d "" /f
        echo y|reg add "HKCR\Directory\Background\shell\WinXNew\shell" /ve /d "" /f
        echo y|reg add "HKCR\Directory\Background\shell\WinXNew\shell\1.txt" /v "Icon" /d "imageres.dll,-2" /f
        echo y|reg add "HKCR\Directory\Background\shell\WinXNew\shell\1.txt" /ve /d "新建自定义空文件" /f
        if exist "%windir%\nulname.vbs" (del /q "%windir%\nulname.vbs") 
        echo y|reg add "HKCR\Directory\Background\shell\WinXNew\shell\1.txt\command" /ve /d "wscript %windir%\nulname.vbs" /f
        echo Dim na>>%systemroot%\nulname.vbs
        echo na=Inputbox("请输入文件后缀名:","创建自定义扩展名文件","")>>%systemroot%\nulname.vbs
        echo If IsEmpty(na) Then>>%systemroot%\nulname.vbs
        echo wscript.quit>>%systemroot%\nulname.vbs
        echo End If>>%systemroot%\nulname.vbs
        echo set fso=createobject("scripting.filesystemobject") : name=^1>>%systemroot%\nulname.vbs
        echo while fso.fileexists("NewFile"^&""^&name^&"."^&na)=true>>%systemroot%\nulname.vbs
        echo name=name+1>>%systemroot%\nulname.vbs
        echo wend>>%systemroot%\nulname.vbs
        echo set o=fso.opentextfile("NewFile"^&""^&name^&"."^&na,2,true)>>%systemroot%\nulname.vbs
        echo wscript.quit>>%systemroot%\nulname.vbs
        echo.&echo ****菜单项创建完成**** &TIMEOUT /T 5 &cls&goto :SelectMenuItem
 
:CreateBatchMenuItem
        echo *************************************************************
        echo “在此处打开命令行窗口”右键菜单项添加中,请稍候...
        echo y|reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%windir%\system32\cmd.exe" /t REG_SZ /d "RUNASADMIN" /f
        echo y|reg add "HKEY_CLASSES_ROOT\folder\shell\cmd" /ve /t REG_SZ /d "在此处打开命令行窗口" /f
        echo y|reg add "HKEY_CLASSES_ROOT\folder\shell\cmd\command" /ve /t REG_SZ /d "cmd.exe /k cd %%1" /f
 
        echo y|reg add "HKEY_CLASSES_ROOT\Directory\shell\runas" /ve /t REG_SZ /d "在此处打开命令行窗口" /f
        echo y|reg add "HKEY_CLASSES_ROOT\Directory\shell\runas" /v HasLUAShield /t REG_SZ /d "" /f
        echo y|reg add "HKEY_CLASSES_ROOT\Directory\shell\runas\command" /ve /t REG_SZ /d "cmd.exe /s /k pushd \"%%V\"" /f
 
        echo y|reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\runas" /ve /t REG_SZ /d "在此处打开命令行窗口" /f
        echo y|reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\runas" /v HasLUAShield /t REG_SZ /d "" /f
        echo y|reg add "HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command" /ve /t REG_SZ /d "cmd.exe /s /k pushd \"%%V\"" /f
 
        echo y|reg add "HKEY_CLASSES_ROOT\Drive\shell\runas" /ve /t REG_SZ /d "在此处打开命令行窗口" /f
        echo y|reg add "HKEY_CLASSES_ROOT\Drive\shell\runas" /v HasLUAShield /t REG_SZ /d "" /f
        echo y|reg add "HKEY_CLASSES_ROOT\Drive\shell\runas\command" /ve /t REG_SZ /d "cmd.exe /s /k pushd \"%%V\"" /f
 
        echo y|reg add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\runas" /ve /t REG_SZ /d "在此处打开命令行窗口" /f
        echo y|reg add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\runas" /v HasLUAShield /t REG_SZ /d "" /f
        echo y|reg add "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\runas\command" /ve /t REG_SZ /d "cmd.exe /s /k pushd \"%%V\"" /f
        echo.&echo ****菜单项创建完成**** &TIMEOUT /T 5 &cls&goto :SelectMenuItem
 
:DeleteBatchMenuItem
        echo *************************************************************
        echo “在此处打开命令行窗口”右键菜单项删除中,请稍候...
        reg delete "HKEY_CLASSES_ROOT\Directory\shell\runas" /f
        reg delete "HKEY_CLASSES_ROOT\Directory\Background\shell\runas" /f
        reg delete "HKEY_CLASSES_ROOT\Drive\shell\runas" /f
        reg delete "HKEY_CLASSES_ROOT\LibraryFolder\background\shell\runas" /f
        echo.&echo ****菜单项删除完成**** &TIMEOUT /T 5 &cls&goto :SelectMenuItem
 
:GetWlanInfo
        chcp|findstr /i "936" >nul && (
                cls&echo **********************************************************
                echo *********当前%ChassisTypes%已连接WiFi记录列表*************
                for /f "tokens=1,2,*" %%i in ('netsh wlan show profiles ^| findstr /i "所有用户配置文件"') do (
                        echo,   WiFi: %%k&echo,WiFi: %%k>>%desktoppath%\MAC-INFO.txt
                        setlocal enabledelayedexpansion
                        for /f "delims=" %%a in ('netsh wlan show profile name^="%%k" key^=clear ^| findstr "关键内容"') do (
                                set "WlanPassword=%%a"
                                if defined WlanPassword (
                                        set "WlanPassword=!WlanPassword:关键内容=密码!"
                                        set "WlanPassword=!WlanPassword:    =!"
                                        echo,   !WlanPassword!&echo,!WlanPassword!>>%desktoppath%\MAC-INFO.txt        
                                )
                        )
                        echo   ==================================================&endlocal
                )
        ) || (
                cls&echo **********************************************************
                for /f "tokens=1,2,3,*" %%i in ('netsh wlan show profiles ^| findstr /i /C:"All User Profile"') do (
                        echo,   WiFi: %%l
                        setlocal enabledelayedexpansion
                        set "WlanName=%%l"
                        for /f "delims=" %%a in ('netsh wlan show profile name^="!WlanName:: =!" key^=clear ^| findstr /i /C:"Key Content"') do (
                                set "WlanPassword=%%a"
                                if defined WlanPassword (
                                        set "WlanPassword=!WlanPassword:Key Content=PassWord!"
                                        set "WlanPassword=!WlanPassword:    =!"
                                        echo,   !WlanPassword!
                                )
                        )
                        echo   ==================================================&endlocal
                )
        )
        goto :GetIPInfo
 
:GetIPInfo
        rem 检测curl下载组件是否存在
        curl -V>nul 2>nul&& set "curlVar=load" || set "curlVar="
        if defined curlVar (
                ping [url]www.baidu.com[/url] -n 1 |find  "TTL" >nul && goto :GetNetWlanInfo || goto :onclose
        ) else (
                echo **********************************************************
                chcp|findstr /i "936" >nul && (
                        echo 当前系统CMD缺少curl组件无法在线获取外网IP信息!
                ) || (
                        echo The curl component is missing in the CMD of the current system. The curl component cannot obtain the Internet IP address online.
                )
                echo.&pause&cls&goto :SelectMenuItem
        )
 
:GetNetWlanInfo
        echo **********************************************************
        chcp|findstr /i "936" >nul && (
                echo 当前%ChassisTypes%IP信息获取中请稍候...&echo.
        ) || (
                Please wait while obtaining the current device IP address.&echo.
        )
        :: 获取外网ip信息
        :: [url]https://checkip.amazonaws.com[/url]
        :: [url]https://api.ipify.org[/url]
        :: [url]https://ifconfig.me/ip[/url]
        :: [url]https://icanhazip.com[/url]
        :: [url]https://ipinfo.io/ip[/url]
        :: [url]https://ipecho.net/plain[/url]
        :: [url]https://checkipv4.dedyn.io[/url]
        for /f "tokens=4" %%a in ('route print^|findstr 0.0.0.0.*0.0.0.0') do set localIP=%%a
        curl -s "https://icanhazip.com" |find  ":" >nul && (
                for /f %%a in ('curl -# -s "https://icanhazip.com"') do set "NetIPv6=%%a"
        )
        for /f %%a in ('curl -# -s "https://ifconfig.me/ip"') do set "NetIPv4=%%a"
        if not defined NetIPv4 (
                for /f %%a in ('curl -# -s "https://ipinfo.io/ip"') do set "NetIPv4=%%a"
        )
        echo ==============================================>>%desktoppath%\MAC-INFO.txt
        if defined localIP (
                chcp|findstr /i "936" >nul && (
                        echo 本机IP:%localIP%&echo 本地IP:%localIP%>>%desktoppath%\MAC-INFO.txt
                ) || (
                        echo localIP:%localIP%&echo localIP:%localIP%>>%desktoppath%\MAC-INFO.txt
                )
        )
        if defined NetIPv4 (
                chcp|findstr /i "936" >nul && (
                        echo 外网IPv4:%NetIPv4%&echo IPv4:%NetIPv4%>>%desktoppath%\MAC-INFO.txt
                ) || (
                        echo IPv4:%NetIPv4%&echo IPv4:%NetIPv4%>>%desktoppath%\MAC-INFO.txt
                )
        )
        if defined NetIPv6 (
                chcp|findstr /i "936" >nul && (
                        echo 外网IPv6:%NetIPv6%&echo IPv6:%NetIPv6%>>%desktoppath%\MAC-INFO.txt
                ) || (
                        echo IPv6:%NetIPv6%&echo IPv6:%NetIPv6%>>%desktoppath%\MAC-INFO.txt
                )
        )
        if exist "%desktoppath%\MAC-INFO.txt" (
                chcp|findstr /i "936" >nul && (
                        echo.&echo 当前查询结果保存在系统桌面WLAN-INFO.txt文件之中。
                ) || (
                        echo.&echo The query results are saved in the WLAN-INFO.txt file on the system desktop.
                )
        )
        echo.&pause&cls&goto :SelectMenuItem
         
:GetMacAdressInfo
        cls&echo **********************************************************
        chcp|findstr /i "936" >nul && (
                echo 当前%ChassisTypes%Mac网卡信息获取中请稍候...
        ) || (
                echo Please wait while obtaining the NIC information of the current device...
        )
        setlocal enabledelayedexpansion
        FOR /F "tokens=*" %%A IN ('IPCONFIG /all 2^>NUL ^|findstr /i /R "描述 Description 物理地址 Physical IPv4 IPv6"') do (
                set "MacInfo=%%A"
                set "MacInfo=!MacInfo:. =!"
                if defined MacInfo (
                        echo "%%A" | findstr /i "描述 Description"  >nul && (
                                echo  ==============================================&echo  ==============================================>>%desktoppath%\MAC-INFO.txt
                        )
                        echo   !MacInfo!&echo !MacInfo!>>%desktoppath%\MAC-INFO.txt
                )
        )
        endlocal
        if exist "%desktoppath%\MAC-INFO.txt" (
                chcp|findstr /i "936" >nul && (
                        echo.&echo 当前查询结果保存在系统桌面WLAN-INFO.txt文件之中。
                ) || (
                        echo.&echo The query results are saved in the WLAN-INFO.txt file on the system desktop.
                )
        )
        echo.&pause&cls&goto :SelectMenuItem
 
:onclose
        echo **********************************************************
        chcp|findstr /i "936" >nul && (
                echo 网络连接不的成功,IP信息获取失败!
        ) || (
                echo The current network connection is not successful, the IP information failed to obtain!
        )
        echo.&pause&cls&goto :SelectMenuItem


Great works are not done by strength, but by persistence! 历尽艰辛的飞升者,成了围剿孙悟空的十万天兵之一。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号


免责声明:
本站所发布的第三方软件及资源(包括但不仅限于文字/图片/音频/视频等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢某程序或某个资源,请支持正版软件及版权方利益,注册或购买,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To: admin@cdsy.xyz

QQ|Archiver|手机版|小黑屋|城东书院 ( 湘ICP备19021508号-1|湘公网安备 43102202000103号 )

GMT+8, 2024-4-29 15:24 , Processed in 0.062258 second(s), 27 queries .

Powered by Discuz! CDSY.XYZ

Copyright © 2019-2023, Tencent Cloud.

快速回复 返回顶部 返回列表