中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS疑难解答 & 问题讨论 (解答室) » [求助]这个问题我死都搞不定,FOR命令提取安装目录出错
作者:
标题: [求助]这个问题我死都搞不定,FOR命令提取安装目录出错 上一主题 | 下一主题
silanger
初级用户





积分 22
发帖 10
注册 2008-9-15
状态 离线
『楼 主』:  [求助]这个问题我死都搞不定,FOR命令提取安装目录出错

我学着用FOR命令提取PROE的安装目录,可是总出错,

如我的PROE目录是在
[HKEY_LOCAL_MACHINE\SOFTWARE\PTC\Pro/ENGINEER\Wildfire 3.0\2007370]
"InstallDir"="D:\\Program Files\\proeWildfire 3.0"

我要提取PROE的安装目录:D:\Program Files\proeWildfire 3.0为变量值,
变量名为:WF,作为安装程序的路径,详细语句如下:

for /f "skip=4 tokens=1,2 delims=:" %%a in ('reg query HKLM\SOFTWARE\PTC\Pro/ENGINEER\Wildfire 3.0\2007370 /V InstallDir') do (
  set WFPathL=%%a
  set WFPathR=%%b
)
setWF=%WFPathL:~-1%:%WFPathR%

总是提示错误: 命令行参数太多,我想可能是FOR那句太长,可我不知道换行,请高手指点一下,给个正确的语句。多谢了

2008-9-15 04:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  



  Quote:
reg query "HKLM\SOFTWARE\PTC\Pro/ENGINEER\Wildfire 3.0\2007370" /V InstallDir

有空格的路径两边加引号。

   此帖被 +1 点积分    点击查看详情   
评分人:【 silanger 分数: +1  时间:2008-9-15 10:35


2008-9-15 07:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
silanger
初级用户





积分 22
发帖 10
注册 2008-9-15
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by lxmxn at 2008-9-15 07:10 AM:

reg query "HKLM\SOFTWARE\PTC\Pro/ENGINEER\Wildfire 3.0\2007370" /V InstallDir

有空格的路径两边加引号。

版大起得真早,你真是神人啊,一句话解决了问题,小妹在此叩谢了。

2008-9-15 08:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 4 楼』:  

小妹.......................

2008-9-15 08:58
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
silanger
初级用户





积分 22
发帖 10
注册 2008-9-15
状态 离线
『第 5 楼』:  

想再请教一下:
1、为什么要加引号啊,我其实不太懂批处理,只是依样画葫芦照搬,原来的语句没有引号,没想到出错了。
2、设置的这个变量只能在进程中有用,安装结束就没有用了。有什么命令能否将这个变量永久设置成WINDOWS里的环境变量啊??
还请楼上两位高手不吝赐教。

[ Last edited by silanger on 2008-9-15 at 10:49 AM ]

2008-9-15 10:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 6 楼』:  

当你提取的一行注册表路径中含有空格的时候就要加"号
HKLM\Software\Microsoft\Windows NT\....
上面的路径中又一项注册表值为 Windows NT,如果你不加"号,那么你提取的将是
HKLM\Software\Microsoft\Windows
上面的的值,而这个值-项在你的注册表中有可能不存在所以就报错了


而你的就是 Wildfire 3.0

   此帖被 +1 点积分    点击查看详情   
评分人:【 silanger 分数: +1  时间:2008-9-15 10:51


2008-9-15 10:39
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
silanger
初级用户





积分 22
发帖 10
注册 2008-9-15
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by huahua0919 at 2008-9-15 10:39 AM:
当你提取的一行注册表路径中含有空格的时候就要加"号
HKLM\Software\Microsoft\Windows NT\....
上面的路径中又一项注册表值为 Windows NT,如果你不加"号 ...

哦,谢谢你的耐心回复。
还有一个问题就是,我想将这个变量设置成WINDOWS里的永久环境变量,有什么命令可以做到吗??

2008-9-15 10:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 8 楼』:  

"永久环境变量"是存放在注册表里面的
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v mypath /t REG_SZ /d "C:\test" /f
或者
wmic ENVIRONMENT create name="mypath",username="<system>",VariableValue="C:\test"


   此帖被 +1 点积分    点击查看详情   
评分人:【 silanger 分数: +1  时间:2008-9-16 11:14




2008-9-15 11:16
查看资料  发短消息 网志   编辑帖子  回复  引用回复
silanger
初级用户





积分 22
发帖 10
注册 2008-9-15
状态 离线
『第 9 楼』:  

谢谢楼上, 先试验一下。。。

2008-9-15 11:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
silanger
初级用户





积分 22
发帖 10
注册 2008-9-15
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by HAT at 2008-9-15 11:16 AM:
"永久环境变量"是存放在注册表里面的
[code]
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v mypath /t REG_SZ /d &quo ...

成功了!就用这句。
把上面我提取出来的路径代入进去就可以了。
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v WF /t REG_SZ /d "%WF%" /f

再次谢谢楼上各位。

2008-9-15 11:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qinanzong
初级用户





积分 29
发帖 18
注册 2008-8-4
状态 离线
『第 11 楼』:  

不错,这种小问题影响深远呀,支持,

2008-9-15 19:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
silanger
初级用户





积分 22
发帖 10
注册 2008-9-15
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by HAT at 2008-9-15 11:16 AM:
"永久环境变量"是存放在注册表里面的
[code]
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v mypath /t REG_SZ /d &quo ...

今天才发现我原来仿的就是HAT兄的,原语句就是HAT兄在另一贴里回答的,可惜我画虎不成反类犬,一知半解。在这里再次谢谢HAT兄。

原贴:
http://www.cn-dos.net/forum/viewthread.php?tid=38482###

2008-9-16 11:24
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: