![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 00:37 |
共 47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » for语句判断ftp登陆信息的问题 |
| 可打印版本 991 / 9 |
| 第1楼 lililulula | 发表于 2007-04-13 00:06 |
| 中级用户 发帖 138 积分 302 | |
|
for语句判断ftp登陆信息的问题 ftp -s:denglu.txt>ftp.log
我把ftp登陆和操作信息保存到ftp.log下 然后为了判断时候在操作中出现有未下载文件错误用以下for语句 set warning=550 1234.txt: No such file or directory. for /f "delims=" %%i in (ftp.log) do if %%i=%warning% echo fail 可是当ftp.log出现550 1234.txt: No such file or directory.一行时,for语句不能正确判断,不知是什么原因,望指点. |
|
| 第2楼 bjsh | 发表于 2007-04-13 00:20 |
| 银牌会员 发帖 621 积分 2,000 | |
|
set "warning=550 1234.txt: No such file or directory."
for /f "delims=" %%i in (ftp.log) do if "%%i"=="%warning%" echo fail |
|
| 第3楼 bjsh | 发表于 2007-04-13 00:21 |
| 银牌会员 发帖 621 积分 2,000 | |
|
出现问题的主要原因是 if 判断 字符串是否相等 时 应该用==而不是=
|
|
| 第4楼 lililulula | 发表于 2007-04-13 00:37 |
| 中级用户 发帖 138 积分 302 | |
|
bjsh兄那个少个"="是我笔误,但是它判断到200 PORT command successful.
也还是正确的 if 200 PORT command successful.==550 1234.txt: No such file or directory. echo fail 但是判断到这句的时候550 1234.txt: No such file or directory的时候就出问题了. "=="550 1234.txt: No such file or directory." echo fail ch file or dircetory. 感觉是把后面的550 1234.txt: No such file or directory信息挤掉了,而且之前也没做判断,不知道什么原因. |
|
| 第5楼 bjsh | 发表于 2007-04-13 00:48 |
| 银牌会员 发帖 621 积分 2,000 | |
|
你按照我写的把引号全都加上试一下;看能否成功;
我估计是因为有些地方不加引号的话; 比如 set warning= 很有可能最后会多出几个空格; 我平时用的时候也不少出现这种情况; 所以现在以已经习惯了 set "warning=" if ""=="" 你都打上引号试一下 |
|
| 第6楼 lililulula | 发表于 2007-04-13 01:26 |
| 中级用户 发帖 138 积分 302 | |
|
都打上了 也没解决问题.
我单独弄个简单文本实验ftp.log里内容为12 bat文件 set "a=12" for /f "delims=" %%i in (ftp.log) do if "%%i"=="%a%" echo fail也不行 难道是for语句后面do command跟if语句有问题?不知道应该是这样的格式~~~ |
|
| 第7楼 bjsh | 发表于 2007-04-13 02:16 |
| 银牌会员 发帖 621 积分 2,000 | |
|
我的bat内容是这样的
其中所测试的1.txt内容是这样的
回显是这样的:
正确执行啊.不是吗?? |
|
| 第8楼 vkill | 发表于 2007-04-13 02:19 |
| 金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽 | |
|
为十么非要用 for
findstr "^550" .log &&(echo fail) 不是更好? |
|
| 第9楼 lililulula | 发表于 2007-04-13 03:20 |
| 中级用户 发帖 138 积分 302 | |
|
原因终于被我找出来了ftp登陆信息导出的问本在某些句后会有结束符,类似"□"在我那句出错的语句后就有这个符号的出现,
550 1234.txt: No such file or directory.□ 在editplus下可以看到,现在的问题就是怎么让导出无结束符,或者怎么用参数去除,delims只替换回车和空格? |
|
| 第10楼 lililulula | 发表于 2007-04-13 03:28 |
| 中级用户 发帖 138 积分 302 | |
|
vkill兄的findstr很好 谢谢
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |