楼 主
[求助]这个问题我死都搞不定,FOR命令提取安装目录出错
发表于 2008-09-15 04:46 · 中国 广东 广州 联通
初级用户
★
积分 22 发帖 10 注册 2008-09-15 03:00 17年会员 UID 125673 性别 女
状态 离线
我学着用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那句太长,可我不知道换行,请高手指点一下,给个正确的语句。多谢了
第 2 楼
发表于 2008-09-15 07:10 · 中国 湖北 武汉 武昌区 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 19年会员 UID 59080
状态 离线
reg query " HKLM\SOFTWARE\PTC\Pro/ENGINEER\Wildfire 3.0\2007370" /V InstallDir
有空格的路径两边加引号。
第 3 楼
发表于 2008-09-15 08:46 · 中国 广东 广州 联通
初级用户
★
积分 22 发帖 10 注册 2008-09-15 03:00 17年会员 UID 125673 性别 女
状态 离线
Originally posted by lxmxn at 2008-9-15 07:10 AM:
reg query "HKLM\SOFTWARE\PTC\Pro/ENGINEER\Wildfire 3.0\2007370" /V InstallDir
有空格的路径两边加引号。
版大起得真早,你真是神人啊,一句话解决了问题,小妹在此叩谢了。
第 4 楼
发表于 2008-09-15 08:58 · 中国 江苏 苏州 中移铁通
银牌会员
★★★
积分 1,608 发帖 780 注册 2007-10-07 10:19 18年会员 UID 99089 性别 男
状态 离线
小妹.......................
第 5 楼
发表于 2008-09-15 10:33 · 中国 广东 广州 联通
初级用户
★
积分 22 发帖 10 注册 2008-09-15 03:00 17年会员 UID 125673 性别 女
状态 离线
想再请教一下:
1、为什么要加引号啊,我其实不太懂批处理,只是依样画葫芦照搬,原来的语句没有引号,没想到出错了。
2、设置的这个变量只能在进程中有用,安装结束就没有用了。有什么命令能否将这个变量永久设置成WINDOWS里的环境变量啊??
还请楼上两位高手不吝赐教。
[
Last edited by silanger on 2008-9-15 at 10:49 AM ]
第 6 楼
发表于 2008-09-15 10:39 · 中国 江苏 苏州 中移铁通
银牌会员
★★★
积分 1,608 发帖 780 注册 2007-10-07 10:19 18年会员 UID 99089 性别 男
状态 离线
当你提取的一行注册表路径中含有空格的时候就要加"号
HKLM\Software\Microsoft\Windows NT\....
上面的路径中又一项注册表值为 Windows NT,如果你不加"号,那么你提取的将是
HKLM\Software\Microsoft\Windows
上面的的值,而这个值-项在你的注册表中有可能不存在所以就报错了
而你的就是 Wildfire 3.0
第 7 楼
发表于 2008-09-15 10:51 · 中国 广东 广州 联通
初级用户
★
积分 22 发帖 10 注册 2008-09-15 03:00 17年会员 UID 125673 性别 女
状态 离线
Originally posted by huahua0919 at 2008-9-15 10:39 AM:
当你提取的一行注册表路径中含有空格的时候就要加"号
HKLM\Software\Microsoft\Windows NT\....
上面的路径中又一项注册表值为 Windows NT,如果你不加"号 ...
哦,谢谢你的耐心回复。
还有一个问题就是,我想将这个变量设置成WINDOWS里的永久环境变量,有什么命令可以做到吗??
第 8 楼
发表于 2008-09-15 11:16 · 中国 重庆 九龙坡区 电信
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
"永久环境变量"是存放在注册表里面的
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"
第 9 楼
发表于 2008-09-15 11:36 · 中国 广东 广州 联通
初级用户
★
积分 22 发帖 10 注册 2008-09-15 03:00 17年会员 UID 125673 性别 女
状态 离线
第 10 楼
发表于 2008-09-15 11:46 · 中国 广东 广州 联通
初级用户
★
积分 22 发帖 10 注册 2008-09-15 03:00 17年会员 UID 125673 性别 女
状态 离线
Originally posted by HAT at 2008-9-15 11:16 AM:
"永久环境变量"是存放在注册表里面的
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
再次谢谢楼上各位。
第 11 楼
发表于 2008-09-15 19:11 · 中国 广东 东莞 电信
初级用户
★
积分 29 发帖 18 注册 2008-08-04 09:51 17年会员 UID 122765 性别 男
状态 离线
第 12 楼
发表于 2008-09-16 11:24 · 中国 广东 深圳 南山区 电信
初级用户
★
积分 22 发帖 10 注册 2008-09-15 03:00 17年会员 UID 125673 性别 女
状态 离线
Originally posted by HAT at 2008-9-15 11:16 AM:
"永久环境变量"是存放在注册表里面的
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###
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正