注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT求助&讨论
» 关于64位操作系统秕处理运行的问题,特难,求助。
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
wspj2000
发短消息
加为好友
wspj2000
当前离线
UID
65978
帖子
20
精华
0
积分
37
PB
37
技术
0
捐助
0
阅读权限
5
在线时间
10 小时
注册时间
2014-4-14
最后登录
2024-3-29
列兵
帖子
20
积分
37
技术
0
捐助
0
注册时间
2014-4-14
1
楼
跳转到
»
倒序看帖
打印
字体大小:
t
T
发表于 2023-3-31 09:24
|
显示全部帖子
[注册表类]
关于64位操作系统秕处理运行的问题,特难,求助。
批处理命令很简单,regedit /s aaa.reg
在32和64位操作系统下,双击此批处理都是正常的。
但是使用winrar将此批处理压缩成自解压程序,解压后自动运行此批处理,则在32位系统下正常,在64位系统下就不正常了,显示程序成功运行,但实际并未起到导入注册表的作用。
特求助,万分感谢!
收藏
分享
wspj2000
发短消息
加为好友
wspj2000
当前离线
UID
65978
帖子
20
精华
0
积分
37
PB
37
技术
0
捐助
0
阅读权限
5
在线时间
10 小时
注册时间
2014-4-14
最后登录
2024-3-29
列兵
帖子
20
积分
37
技术
0
捐助
0
注册时间
2014-4-14
2
楼
发表于 2023-3-31 10:53
|
显示全部帖子
回复
2#
czjt1234
个人估计双击批处理时调用的regedit和自动运行批处理时调用的版本不一样,因为64位系统里,是有两个regedit.exe的,一个位于C:\Windows,一个位于C:\Windows\SysWOW64,但是我试过指定两个路径中的regedit.exe,也是都不行。
TOP
wspj2000
发短消息
加为好友
wspj2000
当前离线
UID
65978
帖子
20
精华
0
积分
37
PB
37
技术
0
捐助
0
阅读权限
5
在线时间
10 小时
注册时间
2014-4-14
最后登录
2024-3-29
列兵
帖子
20
积分
37
技术
0
捐助
0
注册时间
2014-4-14
3
楼
发表于 2023-3-31 11:15
|
显示全部帖子
原因找到了,但依然无法解决。
双击批处理时调用的是64位的regedit.exe,但打包成exe后自动运行时调用的是32位的regedit.exe.
求大神帮忙 。
TOP
wspj2000
发短消息
加为好友
wspj2000
当前离线
UID
65978
帖子
20
精华
0
积分
37
PB
37
技术
0
捐助
0
阅读权限
5
在线时间
10 小时
注册时间
2014-4-14
最后登录
2024-3-29
列兵
帖子
20
积分
37
技术
0
捐助
0
注册时间
2014-4-14
4
楼
发表于 2023-3-31 15:56
|
显示全部帖子
回复
6#
czjt1234
不是64位的压缩软件,而是用了很多年的nsis文件夹压缩吕中,但用winrar压缩时确实是64位的,结果一样。
现发现在64位系统“运行”里输入regedit,或是双击批处理,则运行的regedit.exe是64位版本。
如果把批处理制作成自解压程序后双击运行,则运行的regedit.exe肯定是32位版本,诡异的是用everything搜索出来的regedit.exe有两个大小不一样的,明显一个是32bit一个是64bit,但双击运行却永远只能运行成32bit版本的。
高手可以自测下。
TOP
wspj2000
发短消息
加为好友
wspj2000
当前离线
UID
65978
帖子
20
精华
0
积分
37
PB
37
技术
0
捐助
0
阅读权限
5
在线时间
10 小时
注册时间
2014-4-14
最后登录
2024-3-29
列兵
帖子
20
积分
37
技术
0
捐助
0
注册时间
2014-4-14
5
楼
发表于 2023-3-31 16:13
|
显示全部帖子
终于找到解决办法了,思路来自czjt1234大神的64位系统重定向。解决代码如下:
@echo off
if"%ProgramFiles(x86)%" =="" goto MainCode
if not exist %SystemRoot%\\Sysnative\\cmd.exe goto MainCode
%SystemRoot%\\Sysnative\\cmd.exe /C"%~f0" %*
goto :EOF
:MainCode
set Program
regedit.exe /s aa.reg
十分感谢czjt1234!
TOP
wspj2000
发短消息
加为好友
wspj2000
当前离线
UID
65978
帖子
20
精华
0
积分
37
PB
37
技术
0
捐助
0
阅读权限
5
在线时间
10 小时
注册时间
2014-4-14
最后登录
2024-3-29
列兵
帖子
20
积分
37
技术
0
捐助
0
注册时间
2014-4-14
6
楼
发表于 2023-3-31 16:21
|
显示全部帖子
这个方法还是判断系统是否64位系统,如是则调用64位的cmd.exe来解决的问题的。
TOP
返回列表
有偿求助
第三方命令行
VBS原创&转载
精品软件交流
UNIX/Linux Shell
VBS求助&讨论
PowerShell求助&讨论
新手练功
BAT教程&资料
BAT原创&转载
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]