中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: %~$path:I 用法求救!(已结) 上一主题 | 下一主题
hlowd
初级用户





积分 65
发帖 29
注册 2007-11-3
状态 离线
『楼 主』:  %~$path:I 用法求救!(已结)

我们知道%~$path:I 如果找不到文件,就会返回空串,但是下边的程序寻找不存在的文件时明明返回空串,为什么不是""呢?难道“”不表示空串么?

1.bat
=============================
setlocal ENABLEDELAYEDEXPANSION
set var=c:\
set result=%~$var:1
echo gggggg!result!kkkk
if !result! equ ""   echo 文件找不到
pause
=============================

如果用一个C:\不存在的文件做为参数,比如:1.bat 11.txt,因为找不到该文件,应该返回空串,echo gggggg!result!kkkk显示正常,而倒数第2行的判断却不会运行,为什么!
求高手解答

[ Last edited by hlowd on 2008-2-1 at 11:46 PM ]

2008-2-1 23:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
slore
铂金会员





积分 5212
发帖 2478
注册 2007-2-8
状态 离线
『第 2 楼』:  

%~$path:I
不清楚……

为什么不用 if exist 判断存在性呢?

if "!result!" == "" echo 文件找不到

2008-2-1 23:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hlowd
初级用户





积分 65
发帖 29
注册 2007-11-3
状态 离线
『第 3 楼』:  感谢!

感谢slore兄的指点,问题解决!小弟只是想弄清楚%~$path:I这个变量替换的用法,好给别人讲清楚,呵呵。
那一段程序只是测试小程序,见笑了!
再次感谢兄的点拨。

2008-2-1 23:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zcnvnv
初级用户





积分 114
发帖 36
注册 2007-12-22
状态 离线
『第 4 楼』:  

"!result!"     要加引号!
改后如下:     你再试试。




setlocal ENABLEDELAYEDEXPANSION
set var=c:\
set result=%~$var:1
echo gggggg!result!kkkk
if "!result!" equ ""   echo 文件找不到
pause

2008-2-2 17:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: