Board logo

标题: [文本处理] [已解决]求大神对批处理优化、勘误 [打印本页]

作者: zldarwin    时间: 2023-9-19 02:16     标题: [已解决]求大神对批处理优化、勘误

本帖最后由 zldarwin 于 2023-9-19 12:35 编辑

近日通过论坛帮助,解决了多年的兼容性设置问题(站内链接),感谢 Batcher 的专业解答。

随后补充细节,虽测试正常,仍怕隐藏致命问题,仍想继续完善,诚邀大神们指正。

看看能否“优化语句语法、精简代码、使逻辑顺序更合理”等。

批处理用于执行自解压安装包后的自动设定
  1. ::
  2. ::旨在优化电子课堂安装流程
  3. ::
  4. @echo off
  5. set AppName=幼幼版3~4岁D.exe
  6. set CompLayer=~ WIN7RTM
  7. set Folder=幼幼版3~4岁D
  8. ::创建自定义桌面快捷方式
  9. set qbmname=创意阅读(上)2~3岁 D.lnk
  10. set qbmexec=%~dp0幼幼版3~4岁D.exe
  11. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\%qbmname%""):b.TargetPath=""%qbmexec%"":b.WorkingDirectory=""%~dp0"":b.Save:close")
  12. ::检测系统版本后,安装不同版本Adobe Air
  13. for /f "delims=" %%i in ('ver') do (
  14.     set "version=%%i"
  15. )
  16. set "version=%version:~-9,3%"
  17. if "%version%" equ "6.1" (
  18.     echo Windows 7
  19.     start %Folder%\adobeAirV32.exe
  20. ) else (
  21.     echo Windows 10/11
  22.     ::Win10/Win11下,设置系统兼容性
  23.     reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~dp0%AppName%" /t REG_SZ /d "%CompLayer%" /f
  24.     start %Folder%\adobeAirV29.exe
  25. )
  26. ::打开官网登录页
  27. start http://www.magepark.cn/login/
复制代码

作者: Batcher    时间: 2023-9-19 09:25

回复 1# zldarwin
  1. set "AppName=幼幼版3~4岁D.exe"
复制代码
set命令使用双引号的好处:
1、避免字符串里面有特殊字符导致出错。
2、避免行尾不小心出现多余空格导致出错。
  1. start "" "%Folder%\adobeAirV29.exe"
复制代码
start命令使用双引号的好处:
避免路径中包含空格或特殊字符导致出错。
作者: zldarwin    时间: 2023-9-19 12:27

回复 2# Batcher


   
收到,感谢 Batcher ~




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