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

[文件操作] [已解决]真心求助,求设置“以兼容模式运行 ......”的批处理

[复制链接]
发表于 2023-9-13 11:11:26 | 显示全部楼层 |阅读模式
本帖最后由 zldarwin 于 2023-9-15 04:52 编辑

朋友公司写的一个软件在 Win 10、Win 11 上只能通过设置“兼容性 - 以兼容模式运行这个程序 - Windows 7 ” 来正常运行,维护起来非常不方便,因为软件暂停更新,所以维护起来比较麻烦。

网上找了许多方式,都需要设置绝对路径,以注册表写入的方式,批处理也没有写完整:


方法1:
注册表修改,兼容模式对应的注册表如下(以红警2为例):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"D:\\红警2\\ra2.exe"="WIN98"

方法2:
批处理
@echo off
set __COMPAT_LAYER= 兼容模式对应的注册表值(如98模式就是WIN98)
start 游戏执行程序
exit


但绝对路径无法做到更大的适配性,求大神给些解决方案。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-9-13 18:41:52 | 显示全部楼层
回复 1# zldarwin


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. REM 待设置的应用程序名称(不要写路径)
  3. set "AppName=WinRAR.exe"
  4. REM 兼容性 - 以兼容模式运行这个程序 - Windows 7
  5. set "CompLayer=~ WIN7RTM"
  6. reg add "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%~dp0%AppName%" /t REG_SZ /d "%CompLayer%" /f
复制代码
假设已知应用程序名称是WinRAR.exe,路径可能发生变化。
可能是C:\Program Files\WinRAR\WinRAR.exe
可能是D:\Program Files\RAR\WinRAR.exe

代码里面不需要写死程序的完整路径,只需要把test.bat和应用程序的exe文件放在同一个目录下就行了。
如果这不是你想要的效果,请举例说明具体需求。

如果需要上传截图,可以找个图床,例如:
http://bbs.bathome.net/thread-60985-1-1.html

评分

参与人数 1技术 +1 收起 理由
zldarwin + 1 专业、细致、严谨、贴心。

查看全部评分

 楼主| 发表于 2023-9-14 13:31:40 | 显示全部楼层
回复 2# Batcher


   拜谢您的回复,这就去测试一下。
 楼主| 发表于 2023-9-14 13:34:39 | 显示全部楼层
回复 2# Batcher


    居然还有详细的注释和方法解析,手动抱拳,专业又细致严谨。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 14:42 , Processed in 0.018211 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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