找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 1692|回复: 11

[网络工具] 网卡的静态IP地址和动态IP地址之间的切换

[复制链接]
发表于 2025-12-23 14:00:47 | 显示全部楼层 |阅读模式
笔记本电脑会在公司网和家庭网之间来回切换,网卡IP地址要来回切换的,用脚本切换IP地址就方便。
  1. @echo off
  2. title 配置网卡地址工具
  3. mode con cols=70 lines=100 & color 0a
  4. setlocal EnableDelayedExpansion

  5. REM Readed address.txt.
  6. set lineFlag=0
  7.     for /f "delims=" %%i in (%~dp0address.txt) do (
  8.         set /a lineFlag+=1
  9.             if !lineFlag!==1 ( set name=%%i )
  10.             if !lineFlag!==2 ( set ip=%%i )
  11.             if !lineFlag!==3 ( set subnet=%%i )
  12.             if !lineFlag!==4 ( set gateway=%%i )
  13.             if !lineFlag!==5 ( set dns=%%i )
  14. )

  15. :menu
  16. ::cls
  17. echo:
  18. echo =============================
  19. echo 请选择要进行的操作
  20. echo 1、设置静态IP地址
  21. echo 2、设置动态IP地址
  22. echo 3、退出
  23. echo =============================
  24. set /p choice="选择操作(1/2/3):"

  25. if "%choice%" == "3" ( exit )
  26. if "%choice%" == "1" ( goto static )
  27. if "%choice%" == "2" (
  28.            netsh interface ip set address name=%name% source=dhcp
  29.     netsh interface ip set dns name=%name%  source=dhcp
  30. )
  31. echo 动态IP地址设置完成。
  32. echo:
  33. echo:
  34. goto menu
  35. )

  36. goto menu


  37. :static
  38. netsh interface ipv4 set address name=%name% static %ip% %subnet% %gateway%
  39. netsh interface ipv4 set dnsservers name=%name% source=static address=%dns% register=primary validate=no
  40. ::netsh interface ipv4 add dnsservers name=%name%  address=114.114.114.114 index=2 validate=no
  41. echo 静态IP地址设置完成。
  42. echo:
  43. echo:

  44. goto menu

复制代码
把静态IP地址提前写在address.txt中,例如:
以太网
10.238.101.140
255.255.255.0
10.238.101.1
12.118.2.201

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

参与人数 1技术 +1 收起 理由
zzz19760225 + 1 感谢分享!

查看全部评分

发表于 2025-12-23 17:30:53 | 显示全部楼层
本帖最后由 jiavip 于 2025-12-23 18:36 编辑

没那么复杂,,

  1. @echo off
  2. if "%1"=="" echo.没有参数输入,按任意键退出!& pause > nul & exit
  3. set name=以太网
  4. set ip=10.238.101.140
  5. set 子掩码=255.255.255.0
  6. set 网关=10.238.101.1
  7. set dns=12.118.2.201
  8. goto,%1
  9. :0
  10. netsh interface ip set address name=%name% source=dhcp
  11. netsh interface ip set dns name=%name%  source=dhcp
  12. exit
  13. :1
  14. netsh interface ipv4 set address name=%name% static %ip% %子掩码% %网关%
  15. netsh interface ipv4 set dnsservers name=%name% source=static address=%dns% register=primary validate=no
复制代码
如果是自己用的  上面这个脚本就足够了,简单明了!
把本机 IP,子掩码,网关,DNS写对 存好,任意位置,发送快捷方式到桌面或 任意地方,
快捷方式 1
修改快捷方式,在文件名的后面 空格 0  是动态
复制 快捷方式 2
修改快捷方式,在文件名的后面 空格 1  是静态
标签 :0 和 :1 就是 快捷方式参数的对应值,,,
可以根据自己的喜好修改成自己喜欢的字符,,,如 :D 代表动态 ,,:J 代表静态

脚本可以有很多种写法,最简化,最快捷的才是根本,,,
把脚本写得复杂,有点舍本求远了,,,!
发表于 2025-12-23 17:45:52 | 显示全部楼层
我写自己用的脚本,基本都是怎么方便,就怎么写!
多数都是采用参数调用脚本标签,,,,
利用标签的分割性质,在一个脚本里写下不同的命令代码,采用参数调用,,用快捷方式+参数 执行,,
一个 主体脚本,创建 多个快捷方式,实现 多个命令调用,实现多个执行效果,这就是BAT 脚本的魅力之一,,,,,
 楼主| 发表于 2025-12-24 13:37:20 | 显示全部楼层
回复 3# jiavip


    主题脚本+快捷方式+参数,调用灵魂方便。一直想学这种方法,请高手指点一下怎么优化下面的脚本。
脚本作用是静默安装软件,软件组合写死在脚本中,如17 微信QQWPS360浏览器搜狗WinRAR。希望在安装时能灵活组合软件。
  1. @echo off
  2. setlocal enabledelayedexpansion

  3. echo ================================================
  4. ::创建开始页面
  5. :start

  6. echo 选择对应的软件序号进行安装:
  7. echo 1 微信    2 QQ    3 腾讯会议    4 钉钉
  8. echo 6 WPS    7 谷歌浏览器    8 360安全浏览器    9 火狐浏览器
  9. echo 11 搜狗输入法    12 微信输入法    13 百度输入法
  10. echo 16 WinRAR    17 微信QQWPS360浏览器搜狗WinRAR
  11. echo 21 安全卫士  22 网络激活  23 KMS激活  24 解除WPS限制  25 重启电脑
  12. echo 31 关闭UCA  32 打开UCA  33  基础配置  34 驱动安装   
  13. echo ===================================================================
  14. echo 61 微信x86
  15. echo 输入程序的序号,按“Enter”进行安装。退出安装程序输入“N”后按“Enter”。
  16. set /p num=
  17. ::echo %mun%
  18. if %num% EQU 1  start %~dp0WeChatSetup.exe /S
  19. if %num% EQU 2  start %~dp0QQ.exe /s
  20. if %num% EQU 3  start %~dp0TencentMeeting.exe /silentinstall=0 /Language="zh-cn"
  21. if %num% EQU 4 start %~dp07.8.0-Release.exe /S /NCRC

  22. if %num% EQU 6  start %~dp0WPS_Setup.exe /S -agreelicense
  23. if %num% EQU 7  start %~dp0ChromeSetup.exe
  24. if %num% EQU 8 start %~dp0360se_setup.exe --silent-install=3_1_1
  25. if %num% EQU 9 start /i %~dp0Firefox_Setup.msi /passive

  26. if %num% EQU 11  start %~dp0sogou_pinyin.exe /S
  27. if %num% EQU 12 start %~dp0wetype.exe /s
  28. if %num% EQU 13 start %~dp0BaiduPinyinSetup.exe /s


  29. if %num% EQU 16  start %~dp0winrar.exe /S

  30. if %num% EQU 17  start %~dp0WeChatSetup.exe /S &start %~dp0QQ.exe /s &start %~dp0WPS_Setup.exe /S -agreelicense &start %~dp0360se_setup.exe --silent-install=3_1_1 &start %~dp0sogou_pinyin.exe /S  &start %~dp0winrar.exe /S

  31. if %num% EQU 21 start %~dp0anquanweishi.exe /install /silent

  32. if %num% EQU 22 start %~dp0\cmd\callactivatedps.bat

  33. if %num% EQU 23 start %~dp0\KMS_VL_ALL\KMS-VL-ALL_cn.cmd


  34. if %num% EQU 24 reg add  HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin  /V enableForceLoginForFirstInstallDevice  /t REG_SZ  /d false  /f

  35. if %num% EQU 25 start %~dp0reboot.bat

  36. if %num% EQU 31 start %~dp0disableUAC.bat

  37. if  %num% EQU  32 start %~dp0EnableUAC.bat

  38. if %num%  EQU  33 start %~dp0normalinstall.bat

  39. if %num% EQU  34 start %~dp0runSDIRUS.bat

  40. if %num% EQU 61  start %~dp0WeChatSetup_x86.exe /S

  41. echo ============================================

  42. if %num% EQU n goto end
  43. if %num% EQU N goto end
  44. ::pause
  45. goto start

  46. :end
复制代码
谢谢高手指点。
发表于 2025-12-25 02:36:31 | 显示全部楼层
根据你那原始脚本修改 ,,,,
  1. @echo off
  2. Set num=%~1
  3. :start
  4. if %num% EQU 1  start %~dp0WeChatSetup.exe /S
  5. if %num% EQU 2  start %~dp0QQ.exe /s
  6. if %num% EQU 3  start %~dp0TencentMeeting.exe /silentinstall=0 /Language="zh-cn"
  7. if %num% EQU 4 start %~dp07.8.0-Release.exe /S /NCRC
  8. if %num% EQU 6  start %~dp0WPS_Setup.exe /S -agreelicense
  9. if %num% EQU 7  start %~dp0ChromeSetup.exe
  10. if %num% EQU 8 start %~dp0360se_setup.exe --silent-install=3_1_1
  11. if %num% EQU 9 start /i %~dp0Firefox_Setup.msi /passive
  12. if %num% EQU 11  start %~dp0sogou_pinyin.exe /S
  13. if %num% EQU 12 start %~dp0wetype.exe /s
  14. if %num% EQU 13 start %~dp0BaiduPinyinSetup.exe /s
  15. if %num% EQU 16  start %~dp0winrar.exe /S
  16. if %num% EQU 17  start %~dp0WeChatSetup.exe /S &start %~dp0QQ.exe /s &start %~dp0WPS_Setup.exe /S -agreelicense &start %~dp0360se_setup.exe --silent-install=3_1_1 &start %~dp0sogou_pinyin.exe /S  &start %~dp0winrar.exe /S
  17. if %num% EQU 21 start %~dp0anquanweishi.exe /install /silent
  18. if %num% EQU 22 start %~dp0\cmd\callactivatedps.bat
  19. if %num% EQU 23 start %~dp0\KMS_VL_ALL\KMS-VL-ALL_cn.cmd
  20. if %num% EQU 24 reg add  HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin  /V enableForceLoginForFirstInstallDevice  /t REG_SZ  /d false  /f
  21. if %num% EQU 25 start %~dp0reboot.bat
  22. if %num% EQU 31 start %~dp0disableUAC.bat
  23. if  %num% EQU  32 start %~dp0EnableUAC.bat
  24. if %num%  EQU  33 start %~dp0normalinstall.bat
  25. if %num% EQU  34 start %~dp0runSDIRUS.bat
  26. if %num% EQU 61  start %~dp0WeChatSetup_x86.exe /S
  27. if /i %num% EQU n exit
  28. if not "%num%"=="" exit
  29. cls
  30. echo 选择对应的软件序号进行安装:
  31. echo 1 微信    2 QQ    3 腾讯会议    4 钉钉
  32. echo 6 WPS    7 谷歌浏览器    8 360安全浏览器    9 火狐浏览器
  33. echo 11 搜狗输入法    12 微信输入法    13 百度输入法
  34. echo 16 WinRAR    17 微信QQWPS360浏览器搜狗WinRAR
  35. echo 21 安全卫士  22 网络激活  23 KMS激活  24 解除WPS限制  25 重启电脑
  36. echo 31 关闭UCA  32 打开UCA  33  基础配置  34 驱动安装   61 微信x86
  37. echo 输入程序的序号,按“Enter”进行安装。
  38. set /p num=
  39. goto start
复制代码
-------------------这些都是很入门的写法,,,
%num% 是执行变量,,,%1,是获取外部第一个参数
第二行写明 ,执行参数=外部参数,,
如果外部参数为空白则IF 都没被执行,脚本则走到,echo 选择对应的软件序号进行安装:进行显示选择,,
set /p num= 语句,把%num% 变量赋予参数后goto start
跳到 :start标签脚本前段,重复执行IF判断,,
if /i %num% EQU n exit if /i 是不分大小写的 n 被判断到则执行 exit 退出 命令。
if not "%num%"=="" exit 当%num% 变量不再是空白,则执行 exit 退出 命令。

------------
这样写法 的好处是,你可以把脚本 拖进其他脚本或cmd窗口下写 空格 加 参数 (序号)直接运行指定命令,
运行完后退出,免去选择。
同理,你也可以把脚本创建 快捷方式 ,目标:脚本完整路径名(后面) 空格 + 序号,指定执行。运行完后退出,免去选择。
发表于 2025-12-25 08:49:17 | 显示全部楼层
本帖最后由 77七 于 2025-12-25 08:50 编辑

回复 4# tomtangfish2



  1. set #1=start %~dp0WeChatSetup.exe /S
  2. set #2=start %~dp0QQ.exe /s
  3. set #3=start %~dp0TencentMeeting.exe /silentinstall=0 /Language="zh-cn"
  4. set #4=start %~dp07.8.0-Release.exe /S /NCRC

  5. :loop
  6. setlocal enabledelayedexpansion
  7. rem 可以一次输入多个,如 1 3
  8. set /p num=
  9. for %%a in (%num%) do (
  10.         !#%%a!
  11. )
  12. endlocal
  13. pause
  14. goto :loop
复制代码
发表于 2025-12-25 11:03:00 | 显示全部楼层
本帖最后由 aloha20200628 于 2025-12-25 11:19 编辑

回复 4# tomtangfish2

以下示例代码假设所有安装程序均在系统路径或当前目录中,可在3-6行之间参照示例格式增减所需安装程序,代码假设采用并发安装(非顺序安装)方式...

  1. @echo off &setlocal enabledelayedexpansion &set "n=0" &set "i="
  2. for %%p in (
  3.    "WeChatSetup.exe /S"
  4.    "TencentMeeting.exe /silentinstall=0 /Language="zh-cn""
  5.    "360se_setup.exe --silent-install=3_1_1"
  6.    "WPS_Setup.exe /S -agreelicense"
  7. ) do set/a "n+=1" &set "#!n!=%%~p" &for /f %%a in (%%p) do echo,!n!: %%a
  8. :[loop]
  9.   set/p "i=选择以上对应的软件序号进行安装(可输入多个序号,其间用空格分隔),直接回车键退出:"
  10.   if not defined i exit/b
  11.   for %%n in (%i%) do start "" !#%%n!
  12.   :: 若全部采用顺序安装方式须用此行代码》for %%n in (%i%) do !#%%n!
  13.   set "i=" & goto [loop]
复制代码
 楼主| 发表于 2025-12-29 10:32:39 | 显示全部楼层
在各位高手的指点下,代码分写成两部分:第一部分是写软件编号、名称和静默安装命令;第二部分是指定被安装软件。以后增删安装软件只需修改第一部分。
不足处:
1、向脚本传递参数的功能没有实现。
2、软件编号名称与静默安装命令是分开写的,一一对应是麻烦的。没有省略写编号名称是因为直接读静默命令不方便。

  1. @echo off
  2. set #1=start %~dp0WeChatSetup.exe /S
  3. set #2=start %~dp0QQ.exe /s
  4. set #3=start %~dp0TencentMeeting.exe /silentinstall=0 /Language="zh-cn"
  5. set #4=start %~dp07.8.0-Release.exe /S /NCRC
  6. set #6=start %~dp0WPS_Setup.exe /S -agreelicense
  7. set #7=start %~dp0ChromeSetup.exe
  8. set #8=start %~dp0360se_setup.exe --silent-install=3_1_1
  9. set #9=start /i %~dp0Firefox_Setup.msi /passive
  10. set #11=start %~dp0sogou_pinyin.exe /S
  11. set #12=start %~dp0wetype.exe /s
  12. set #13=start %~dp0BaiduPinyinSetup.exe /s
  13. set #16=start %~dp0winrar.exe /S
  14. set #21=start %~dp0anquanweishi.exe /install /silent
  15. set #22=start %~dp0\cmd\callactivatedps.bat
  16. set #23=start %~dp0\KMS_VL_ALL\KMS-VL-ALL_cn.cmd
  17. set #24=reg add  HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin  /V enableForceLoginForFirstInstallDevice  /t REG_SZ  /d false  /f
  18. set #25=start %~dp0reboot.bat
  19. set #31=start %~dp0disableUAC.bat
  20. set #32=start %~dp0EnableUAC.bat
  21. set #33=start %~dp0normalinstall.bat
  22. set #34=34 start %~dp0runSDIRUS.bat
  23. set #61=start %~dp0WeChatSetup_x86.exe /S

  24. echo 选择以上软件对应的序号进行安装,可以输入多个序号,空格分开,比如1 2 3:
  25. echo 1 微信    2 QQ    3 腾讯会议    4 钉钉
  26. echo 6 WPS    7 谷歌浏览器    8 360安全浏览器    9 火狐浏览器
  27. echo 11 搜狗输入法    12 微信输入法    13 百度输入法
  28. echo 16 WinRAR   
  29. echo 21 安全卫士  22 网络激活  23 KMS激活  24 解除WPS限制  25 重启电脑
  30. echo 31 关闭UCA  32 打开UCA   34 驱动安装
  31. echo ==================================
  32. echo 61 微信x86  

  33. :loop
  34. setlocal EnableDelayedExpansion
  35. rem 一次可以输入多个,比如1 2 3
  36. echo 输入软件对应编号,一次可以输入多个,空格分开,如:1 2 3
  37. set /p num=
  38. for %%a in (%num%) do (
  39.     !#%%a!
  40. )
  41. endlocal
  42. goto loop
复制代码
再次感谢各位高手的指点!
发表于 2025-12-29 17:26:21 | 显示全部楼层
回复 8# tomtangfish2


   传递参数最好写了,,,
  1. @Echo off
  2. rem;;; %1 是代表第一个参数 %2代表第二个参数,类推到%9 ,%0 代表该脚本
  3. if "%1"=="1" Echo.%0 参数1  &pause>nul&exit
  4. if "%1"=="2" Echo.%0 参数2  &pause>nul&exit
  5. if "%1"=="3" Echo.%0 参数3  &pause>nul&exit
  6. if "%1"=="4" Echo.%0 参数4  &pause>nul&exit
  7. if "%1"=="5" Echo.%0 参数5  &pause>nul&exit
  8. if "%1"=="6" Echo.%0 参数6  &pause>nul&exit
  9. if "%1"=="7" Echo.%0 参数7  &pause>nul&exit
  10. if "%1"=="8" Echo.%0 参数8  &pause>nul&exit
  11. if "%1"=="9" Echo.%0 参数9  &pause>nul&exit
  12. if "%1"=="0" Echo.%0 参数0  &pause>nul&exit
  13. Goto,%1
  14. Exit
  15. :a
  16. Echo.%0 参数A 不分大小写 &pause>nul&exit
  17. :b
  18. Echo.%0 参数B 不分大小写 &pause>nul&exit
  19. :c
  20. Echo.%0 参数C 不分大小写 &pause>nul&exit
  21. :d
  22. Echo.%0 参数D 不分大小写,可以写A - Z 也可以是字符组 &pause>nul&exit
  23. :A1
  24. Echo.%0 参数A1 不分大小写 &pause>nul&exit
复制代码
存以上代码脚本,,
把脚本 创建快捷方式  加参数 1 到 9  a , b , c , d , a1
把脚本 拖到运行筐 空格 加参数 1 到 9  a , b , c , d , a1
把脚本 拖到CMD 空格 加参数 1 到 9  a , b , c , d , a1
发表于 2025-12-29 23:47:14 | 显示全部楼层
回复 8# tomtangfish2


  
  1. @echo off
  2. setlocal

  3. rem 读取自身,打印提示+定义变量
  4. set n=
  5. for /f "tokens=1-2*" %%a in ('findstr /rbc:"#[0-9][0-9]*[         ]" "%~f0"') do (
  6.         for /f "delims=#" %%c in ("%%a") do (
  7.                 set /p="%%c.%%b        "<nul
  8.         )
  9.         set /a "n+=1,1/(n%%4)" 2>nul || echo=
  10.         set %%a=%%c
  11. )
  12. echo=


  13. rem 获取输入,执行相应动作
  14. :loop
  15. echo=
  16. setlocal enabledelayedexpansion
  17. set num=
  18. if "%*" equ "" (
  19.         echo 输入软件对应编号,一次可以输入多个,空格分开,如:1 2 3
  20.         set /p num=
  21. ) else (
  22.         set num=%*
  23. )

  24. for %%a in (%num%) do (
  25.         !#%%a!
  26.         timeout /t 3
  27. )
  28. endlocal

  29. if "%*" equ "" (
  30.         goto :loop
  31. )

  32. endlocal
  33. exit /b


  34. rem 序号 名称 操作
  35. #1                微信                        start %~dp0WeChatSetup.exe /S
  36. #2                QQ                        start %~dp0QQ.exe /s
  37. #3                腾讯会议                start %~dp0TencentMeeting.exe /silentinstall=0 /Language="zh-cn"
  38. #4                钉钉                        start %~dp07.8.0-Release.exe /S /NCRC
  39. #6                WPS                        start %~dp0WPS_Setup.exe /S -agreelicense
复制代码
 楼主| 发表于 2026-1-11 09:36:01 | 显示全部楼层
回复 10# 77七
在77七和jiavip的帮助下,更新了脚本。
1、实现了脚本接收参数的功能。
2、简化了增删软件的修改操作。
再次感谢77七和jiavip的热心帮助。
  1. @echo off
  2. setlocal EnableDelayedExpansion

  3. rem 跳过增删软件部分
  4. goto main
  5. rem 增删软件。按序号、软件名称、安装命令顺序写成一行,用空格分开
  6. #1   微信      start WeChatSetup.exe /S
  7. #2   QQ        start QQ.exe /s
  8. #3   腾讯会议  start TencentMeeting.exe /silentinstall=0 /Language="zh-cn"
  9. #4   钉钉      start 7.8.0-Release.exe /S /NCRC
  10. #6   WPS       start WPS_Setup.exe /S -agreelicense
  11. #7   谷歌浏览器(在线安装)  start ChromeSetup.exe
  12. #8   360安全浏览器   start 360se_setup.exe --silent-install=3_1_1
  13. #9   火狐浏览器   start /i Firefox_Setup.msi /passive
  14. #11  搜狗输入法   start sogou_pinyin.exe /S
  15. #12  微信输入法   start wetype.exe /s
  16. #13  百度输入法   start BaiduPinyinSetup.exe /s
  17. #16  WinRAR    start winrar.exe /S
  18. #21  安全卫士   start anquanweishi.exe /install /silent
  19. #22  MAS激活   start \cmd\callactivatedps.bat
  20. #23  KMS激活   start \KMS_VL_ALL\KMS-VL-ALL_cn.cmd
  21. #24  解除WPS登录限制 add  HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin  /V enableForceLoginForFirstInstallDevice  /t REG_SZ  /d false  /f
  22. #25  重启电脑   start reboot.bat
  23. #31  关闭UCA  start disableUAC.bat
  24. #32  打开UCA  start EnableUAC.bat
  25. #34  安装驱动 start runSDIRUS.bat

  26. rem x86软件
  27. #61  微信x86  start WeChatSetup_x86.exe /S

  28. rem 退出脚本
  29. #0 退出脚本  exit /b

  30. rem 脚本起始处
  31. :main
  32. rem 读取自身,打印提示+定义变量
  33. set n=
  34. for /f "tokens=1-2*" %%a in ('findstr /rbc:"#[0-9][0-9]*[         ]" "%~f0"') do (
  35.         for /f "delims=#" %%e in ("%%a") do (
  36.                 set /p="%%e.%%b        "<nul
  37.         )
  38.         set /a "n+=1,1/(n%%4)" 2>nul || echo=
  39.         set %%a=%%c     
  40. )
  41. echo=

  42. rem 传递参数
  43. :loopparameter
  44. if "%1"=="" goto end
  45. for %%a in (%1) do (
  46.     !#%%a!
  47. )
  48. shift
  49. goto loopparameter
  50. :end

  51. rem 指定安装软件
  52. :loopchoice
  53. rem 一次可以输入多个,比如1 2 3
  54. echo 输入软件对应编号,一次可以输入多个,空格分开,如:1 2 3       按0退出脚本
  55. set /p num=
  56. for %%a in (%num%) do (
  57.     !#%%a!
  58. )
  59. goto loopchoice
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2026-1-11 23:59:09 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-1-12 00:20 编辑

回复 11# tomtangfish2

如果11楼代码直接用命令行参数驱动,需要用户启运脚本之前先了解代码内几十个安装选项序号,除非编码者本人,否则,对于终端用户的实际使用,可能不太方便,不如仅保留实时输入选项最为便捷...如是,代码可简化如下。

  1. @echo off &setlocal enabledelayedexpansion &set "n=0"
  2. for %%p in (
  3.    "#1 安装微信 start "" WeChatSetup.exe /S"
  4.    "#2 安装腾讯会议 start "" TencentMeeting.exe /silentinstall=0 /Language="zh-cn""
  5.    "#3 解除WPS登录限制 reg add HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin /V enableForceLoginForFirstInstallDevice /t REG_SZ /d false /f"
  6.    "#4 MAS激活 start "" \cmd\callactivatedps.bat"
  7. ) do set/a "n+=1" &set "#!n!=%%~p" &echo,%%~p
  8. :[loop]
  9.   set "i=" &set/p "i=选择以上对应的软件序号进行安装(可输入多个序号,其间用空格分隔),直接回车键退出:"
  10.   if not defined i exit/b
  11.   for %%k in (%i%) do for /f "tokens=1-2* delims= " %%x in ("!#%%k!") do echo,%%x %%y... &%%z
  12.   goto [loop]
复制代码
以上代码中第3-6行仅抽取了11楼全部安装选项中的4个典型作为示范;
   第一个 for %%p ... 循环直接完成选项变量表定义及其显示,其显示格式参照11楼的3字段定义》序号 说明 运行代码;
   代码中的 start 句式增加了前置参数 "" 以便兼容后续可能出现需用双引号包裹的路径参数。

   如果完全克隆11楼 '先处理命令行参数再进入实时选项' 的运行流程,可参考以下代码...

  1. @echo off &setlocal enabledelayedexpansion &set "n=0"
  2. for %%p in (
  3.    "#1 安装微信 start "" WeChatSetup.exe /S"
  4.    "#2 安装腾讯会议 start "" TencentMeeting.exe /silentinstall=0 /Language="zh-cn""
  5.    "#3 解除WPS登录限制 reg add HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\plugins\officespace\flogin /V enableForceLoginForFirstInstallDevice /t REG_SZ /d false /f"
  6.    "#4 MAS激活 start "" \cmd\callactivatedps.bat"
  7. ) do set/a "n+=1" &set "#!n!=%%~p"
  8. if "%~1"=="" goto[select]
  9. for %%v in (%*) do for /f "tokens=1-2* delims= " %%x in ("!#%%~v!") do echo,%%x %%y... &%%z
  10. :[select]
  11.   for /L %%k in (1,1,!n!) do echo,!#%%k!
  12.   :[loop]
  13.     set "i=" &set/p "i=选择以上对应的软件序号进行安装(可输入多个序号,其间用空格分隔),直接回车键退出:"
  14.     if not defined i exit/b
  15.     for %%k in (%i%) do for /f "tokens=1-2* delims= " %%x in ("!#%%k!") do echo,%%x %%y... &%%z
  16.     goto [loop]
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 20:08 , Processed in 0.023490 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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