Board logo

标题: 关于获取一个带环境变量的路径问题(等待补充问题) [打印本页]

作者: jiafei2427     时间: 2009-12-16 14:45    标题: 关于获取一个带环境变量的路径问题(等待补充问题)

系统 win7 or xp

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

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

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

补充:
CODE:  [Copy to clipboard]
如果用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 ]
作者: huahua0919     时间: 2009-12-16 14:48
不行就 call 一下
作者: jiafei2427     时间: 2009-12-16 14:57
谢谢 call 解决了 嗯 同时也看了上面的文章写的真好 。
作者: jiafei2427     时间: 2009-12-16 16:15
补充:
如果用if exist 来判断 含有环境变量的路径呢?
如:
set ver= %userproflie%
if exist “%ver%\123.txt" del "%ver%\123.txt"
其中%ver%不被扩展
作者: huahua0919     时间: 2009-12-16 16:47
你上面的 ver 赋值有错,应该是 set ver=%userprofile%
作者: jiafei2427     时间: 2009-12-16 17:03
嗯 ,手误 = =!
环境变量是对的。

if 语句 执行结果是:

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

[ Last edited by jiafei2427 on 2009-12-16 at 17:33 ]
作者: huahua0919     时间: 2009-12-16 17:23
手误的也太多了吧, 1,  userproFile  ---userproFlie
                            2,  ‘     ----- '
作者: jiafei2427     时间: 2009-12-16 17:33
我晕了~
作者: Hanyeguxing     时间: 2009-12-16 18:06
1,set ver= 后加个空格做什么呢?这个空格会被扩展到所有的ver 中的。即意味着cmd将永远找不到这个路径。
2,exist 后的引号错了
3,既然if 中要使用多次 "%ver%\123.txt" ,为什么在set 的时候就不直接写成set ver="%userprofile%\123.txt"
4,在xp的sp3下的cmd中ver是可以扩展的。
作者: jiafei2427     时间: 2009-12-16 18:19
o 谢谢 楼上的 问题解决了
不直接引用是因为 是获取的路径。




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5