![]() |
中国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 |