Board logo

标题: 为什么显示不出变量 [打印本页]

作者: ggaking     时间: 2008-9-18 15:11    标题: 为什么显示不出变量

程序原意是显示注册表的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
作者: HAT     时间: 2008-9-18 15:16

@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%

作者: ggaking     时间: 2008-9-18 15:27
请二楼的HAT大大能不能解释一下set Nod=%NodL:~-1%:%NodR%,我不太明白,谢谢。
作者: ggaking     时间: 2008-9-18 15:39
明白了,%NodL:~-1%:% 就是取NodL变量的后面开始的一位

谢谢HAT大大了。~~~

^_^