中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 20:00
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 为什么显示不出变量 查看 835 回复 3
楼 主 为什么显示不出变量 发表于 2008-09-18 15:11 ·  中国 浙江 台州 电信
新手上路
积分 19
发帖 8
注册 2008-09-11 16:52
17年会员
UID 125412
性别 男
状态 离线
程序原意是显示注册表的NOD32的安装位置,由于得到的值:C:\Program Files\ESET\NOD32中间有空格,结果写了如下代码,得到的变量nodtemp结果是有的,可就是显示不了,怎么回事啊。请各位大大指教。

@echo off
for /f "skip=4 tokens=3,4,5,6" %%i in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\ESET\Nod\CurrentVersion\Info /v InstallDir') do (
if "%%l"=="" set nodtemp = "%%i %%j %%k"
if "%%k"=="" set nodtemp = "%%i %%j"
if "%%j"=="" set nodtemp = "%%i"
if "%%i"=="" set nodtemp =
)
echo %nodtemp%
pause
2 发表于 2008-09-18 15:16 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
for /f "skip=4 tokens=1,2 delims=:" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\ESET\Nod\CurrentVersion\Info" /v "InstallDir"') do (
set NodL=%%a
set NodR=%%b
)
set Nod=%NodL:~-1%:%NodR%
echo %Nod%
3 发表于 2008-09-18 15:27 ·  中国 浙江 台州 电信
新手上路
积分 19
发帖 8
注册 2008-09-11 16:52
17年会员
UID 125412
性别 男
状态 离线
请二楼的HAT大大能不能解释一下set Nod=%NodL:~-1%:%NodR%,我不太明白,谢谢。
4 发表于 2008-09-18 15:39 ·  中国 浙江 台州 电信
新手上路
积分 19
发帖 8
注册 2008-09-11 16:52
17年会员
UID 125412
性别 男
状态 离线
明白了,%NodL:~-1%:% 就是取NodL变量的后面开始的一位

谢谢HAT大大了。~~~

^_^
论坛跳转: