中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-25 14:58
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,274 会员排行
DOS批处理 & 脚本技术(批处理室) » 读取文本中的系统环境变量引用为什么不成功
可打印版本  866 / 4
第1楼 maddog 发表于 2007-07-04 02:06
新手上路 发帖 4 积分 10
读取文本中的系统环境变量引用为什么不成功
我先用REG QUERY把注册表里的path项读出,然后想判断其中哪个路径不存在就删除,把其他的写回至path项。

我已经用FOR语句把上述字串分离如下:
%SystemRoot%\system32
%SystemRoot%
%SystemRoot%\System32\Wbem
C:\fortest假设这就是想删除的项
C:\Program Files\Intel\Wireless\Bin

但此时面临的问题让我实在困惑——
我用if exist %%i来判断,前面三个有系统变量(%SystemRoot%)的值无法被正确判断为存在。

这是什么道理?又如何解决?

测试用代码如下——

@echo off

set pathleft=
set pathnew=

FOR /F "tokens=2*" %%i IN (PATHQUERY.DAT) DO set pathleft=%%j

:_loop
IF "!pathleft!"=="" goto _end
FOR /F "tokens=1* delims=; usebackq" %%i IN ('!pathleft!') DO (set pathleft=%%j&& if exist "%%i" (echo %%i) else echo error)
goto _loop

:_end

set pathnew=
set pathleft=

前面三行全显示ERROR,第四行被如期删除,第五行正常留存

c0b30528c45b38fe 怎么样就可以解密出来?


─────────────────── 版务记录 ────────────────────
执行:lxmxn
标题:求助一个批处理问题!
说明:因标题表述过于模糊,不便于论坛的搜索和管理,请在三日内修改标题,否则扣除2点积分
参考:http://www.cn-dos.net/forum/viewthread.php?tid=7326&fpage=1
   http://community.csdn.net/IndexPage/SmartQuestion.aspx
─────────────────── 版务记录 ────────────────────


[ Last edited by bjsh on 2007-7-31 at 10:06 AM ]
第2楼 qinbuer 发表于 2007-07-04 02:20
高级用户 发帖 228 积分 512
这是全部代码?有启用延缓环境变量扩展名了吗?
第3楼 maddog 发表于 2007-07-04 12:53
新手上路 发帖 4 积分 10
如何启用延缓环境变量扩展名?
第4楼 maddog 发表于 2007-07-04 13:21
新手上路 发帖 4 积分 10
楼上说的是延缓环境变量吧?我已经在注册表里打开了
第5楼 HAT 发表于 2007-07-04 16:32
版主 发帖 5,017 积分 9,023
@echo off
把这行注释掉
看看运行过程就知道了
我猜(仅仅是猜)是因为%SystemRoot%已经变为C:\WINDOWS
所以后面无法被正确判断为存在
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023