中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 23:23
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 关于获取一个带环境变量的路径问题(等待补充问题)
可打印版本  987 / 9
第1楼 jiafei2427 发表于 2009-12-16 14:45
新手上路 发帖 8 积分 8
关于获取一个带环境变量的路径问题(等待补充问题)
系统 win7 or xp

问题:
我写了个从注册表获取系统“用户程序”的一个路径bat
得到路径用set 建立的一个变量存储 :

比如 set ver = %%i 其中 变量i内含有 环境变量%userprofile%\.....

那么在接下来对 %ver% 的操作中 。。
比如: del ”%ver%\...\*.txt“
系统提示找不到路径? 原因是 set获取的变量ver中含有环境变量 没有被扩展。。。。

补充:

[ Last edited by jiafei2427 on 2009-12-16 at 17:08 ]
第2楼 huahua0919 发表于 2009-12-16 14:48
银牌会员 发帖 780 积分 1,608
不行就 call 一下
第3楼 jiafei2427 发表于 2009-12-16 14:57
新手上路 发帖 8 积分 8
谢谢 call 解决了 嗯 同时也看了上面的文章写的真好 。
第4楼 jiafei2427 发表于 2009-12-16 16:15
新手上路 发帖 8 积分 8
补充:
如果用if exist 来判断 含有环境变量的路径呢?
如:
set ver= %userproflie%
if exist “%ver%\123.txt" del "%ver%\123.txt"
其中%ver%不被扩展
第5楼 huahua0919 发表于 2009-12-16 16:47
银牌会员 发帖 780 积分 1,608
你上面的 ver 赋值有错,应该是 set ver=%userprofile%
第6楼 jiafei2427 发表于 2009-12-16 17:03
新手上路 发帖 8 积分 8
嗯 ,手误 = =!
环境变量是对的。

if 语句 执行结果是:

在屏幕上: %userprofile%\123.txt
应该是 Users\Administrator 在win7下。但是没有被扩展就是上面的样子了。

[ Last edited by jiafei2427 on 2009-12-16 at 17:33 ]
第7楼 huahua0919 发表于 2009-12-16 17:23
银牌会员 发帖 780 积分 1,608
手误的也太多了吧, 1, userproFile ---userproFlie
2, ‘ ----- '
第8楼 jiafei2427 发表于 2009-12-16 17:33
新手上路 发帖 8 积分 8
我晕了~
第9楼 Hanyeguxing 发表于 2009-12-16 18:06
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
1,set ver= 后加个空格做什么呢?这个空格会被扩展到所有的ver 中的。即意味着cmd将永远找不到这个路径。
2,exist 后的引号错了
3,既然if 中要使用多次 "%ver%\123.txt" ,为什么在set 的时候就不直接写成set ver="%userprofile%\123.txt"
4,在xp的sp3下的cmd中ver是可以扩展的。
第10楼 jiafei2427 发表于 2009-12-16 18:19
新手上路 发帖 8 积分 8
o 谢谢 楼上的 问题解决了
不直接引用是因为 是获取的路径。
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023