![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 12:48 |
共 48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » %~$path:I 用法求救!(已结) |
| 可打印版本 843 / 3 |
| 第1楼 hlowd | 发表于 2008-02-01 23:10 |
| 初级用户 发帖 29 积分 65 | |
|
%~$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 ] |
|
| 第2楼 slore | 发表于 2008-02-01 23:27 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
%~$path:I
不清楚…… 为什么不用 if exist 判断存在性呢? if "!result!" == "" echo 文件找不到 |
|
| 第3楼 hlowd | 发表于 2008-02-01 23:45 |
| 初级用户 发帖 29 积分 65 | |
|
感谢! 感谢slore兄的指点,问题解决!小弟只是想弄清楚%~$path:I这个变量替换的用法,好给别人讲清楚,呵呵。
那一段程序只是测试小程序,见笑了! 再次感谢兄的点拨。 |
|
| 第4楼 zcnvnv | 发表于 2008-02-02 17:04 |
| 初级用户 发帖 36 积分 114 | |
|
"!result!" 要加引号!
改后如下: 你再试试。 setlocal ENABLEDELAYEDEXPANSION set var=c:\ set result=%~$var:1 echo gggggg!result!kkkk if "!result!" equ "" echo 文件找不到 pause |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |