楼 主
IF判断文件存不存在问题
发表于 2009-01-05 23:24 · 中国 河南 南阳 联通
新手上路
★
积分 10
发帖 10
注册 2008-12-12 23:50
UID 133697
性别 男
状态 离线
FOR /F "eol=# " %%i in (D:\dir.txt) do (
echo %%i
call :lp "%%i"
)
pause
:lp
IF EXIST %1 (
IF %~z1 GTR 0 (
echo %~nx1 %~z1 大于 0
) ELSE (
echo %~nx1 %~z1 不大于 0
)
) ELSE (
echo %~nx1 文件不存在
)
GOTO :EOF
如果文件不存在的话,就会报错。如何才能实现如果文件存在就判断文件大小,不存在就写日志???
第 2 楼
发表于 2009-01-06 01:10 · 中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
UID 96653
性别 男
状态 离线
因为如果文件不存在的话,这句:
IF
%~z1 GTR 0
就变成了:
IF GTR 0
就导致出错。
---------------------------------------
解决办法是,加上双引号:
IF
"%~z1
" GTR
"0
"
或者先判断不存在:
@echo off
FOR /F "eol=# delims=" %%i in (D:\dir.txt) do (
echo %%i
call :lp "%%i"
)
pause
:lp
IF not EXIST %1 (
echo %~nx1 文件不存在
GOTO :EOF
)
IF %~z1 GTR 0 (
echo %~nx1 %~z1 大于 0
) ELSE (
echo %~nx1 %~z1 不大于 0
)
GOTO :EOF
(如果路径有空格话,还应加上
delims=)
本帖最近评分记录
(共 1 条)
点击查看详情
| 评分人 | 分数 | 时间 |
| 5721617 |
+1 |
2009-01-06 23:13 |
第 3 楼
发表于 2009-01-06 02:22 · 中国 河北 邢台 联通
中级用户
★★
积分 242
发帖 134
注册 2006-12-11 15:14
UID 73203
性别 男
状态 离线
第 4 楼
发表于 2009-05-07 00:04 · 中国 广东 深圳 电信
初级用户
★
开心小子
积分 59
发帖 29
注册 2009-05-06 01:28
UID 144451
性别 男
来自 广东
状态 离线
FOR IF DEBUG FTP SET
貌似着几个命令相当的....
功能也是相当的强大...
开心最好!
快乐你我!
第 5 楼
发表于 2009-05-07 02:13 · 中国 广东 东莞 电信
新手上路
★
四眼
积分 13
发帖 8
注册 2009-05-04 09:12
UID 144370
性别 男
状态 离线
论坛跳转: