中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 22:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于获取一个带环境变量的路径问题(等待补充问题) 查看 986 回复 9
楼 主 关于获取一个带环境变量的路径问题(等待补充问题) 发表于 2009-12-16 14:45 ·  中国 吉林 吉林市 电信
新手上路
积分 8
发帖 8
注册 2007-10-31 00:00
18年会员
UID 101241
性别 男
状态 离线
系统 win7 or xp

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

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

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

补充:

如果用if exist 来判断 含有环境变量的路径呢?
如:
set ver= %userprofile%
if exist “%ver%\123.txt" del "%ver%\123.txt"
其中%ver%不被扩展




[ Last edited by jiafei2427 on 2009-12-16 at 17:08 ]
2 发表于 2009-12-16 14:48 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
不行就 call 一下
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
jiafei2427 +1 2009-12-16 16:20
3 发表于 2009-12-16 14:57 ·  中国 吉林 吉林市 电信
新手上路
积分 8
发帖 8
注册 2007-10-31 00:00
18年会员
UID 101241
性别 男
状态 离线
谢谢 call 解决了 嗯 同时也看了上面的文章写的真好 。
4 发表于 2009-12-16 16:15 ·  中国 吉林 吉林市 电信
新手上路
积分 8
发帖 8
注册 2007-10-31 00:00
18年会员
UID 101241
性别 男
状态 离线
补充:
如果用if exist 来判断 含有环境变量的路径呢?
如:
set ver= %userproflie%
if exist “%ver%\123.txt" del "%ver%\123.txt"
其中%ver%不被扩展
5 发表于 2009-12-16 16:47 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
你上面的 ver 赋值有错,应该是 set ver=%userprofile%
6 发表于 2009-12-16 17:03 ·  中国 吉林 吉林市 电信
新手上路
积分 8
发帖 8
注册 2007-10-31 00:00
18年会员
UID 101241
性别 男
状态 离线
嗯 ,手误 = =!
环境变量是对的。

if 语句 执行结果是:

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

[ Last edited by jiafei2427 on 2009-12-16 at 17:33 ]
7 发表于 2009-12-16 17:23 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
手误的也太多了吧, 1, userproFile ---userproFlie
2, ‘ ----- '
8 发表于 2009-12-16 17:33 ·  中国 吉林 吉林市 电信
新手上路
积分 8
发帖 8
注册 2007-10-31 00:00
18年会员
UID 101241
性别 男
状态 离线
我晕了~
9 发表于 2009-12-16 18:06 ·  中国 吉林 延边朝鲜族自治州 延吉市 电信
银牌会员
★★★
正在学习中的菜鸟...
积分 1,039
发帖 897
注册 2009-03-01 15:34
17年会员
UID 140302
性别 男
来自 在地狱中仰望天堂
状态 离线
1,set ver= 后加个空格做什么呢?这个空格会被扩展到所有的ver 中的。即意味着cmd将永远找不到这个路径。
2,exist 后的引号错了
3,既然if 中要使用多次 "%ver%\123.txt" ,为什么在set 的时候就不直接写成set ver="%userprofile%\123.txt"
4,在xp的sp3下的cmd中ver是可以扩展的。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
jiafei2427 +1 2009-12-16 18:20
10 发表于 2009-12-16 18:19 ·  中国 吉林 吉林市 电信
新手上路
积分 8
发帖 8
注册 2007-10-31 00:00
18年会员
UID 101241
性别 男
状态 离线
o 谢谢 楼上的 问题解决了
不直接引用是因为 是获取的路径。
论坛跳转: