|
lililulula
中级用户
积分 302
发帖 138
注册 2007-3-29
状态 离线
|
『楼 主』:
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语句不能正确判断,不知是什么原因,望指点.
|
|
2007-4-13 00:06 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
2 楼』:
set "warning=550 1234.txt: No such file or directory."
for /f "delims=" %%i in (ftp.log) do if "%%i"=="%warning%" echo fail
|
|
2007-4-13 00:20 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
3 楼』:
出现问题的主要原因是 if 判断 字符串是否相等 时 应该用==而不是=
|
|
2007-4-13 00:21 |
|
|
lililulula
中级用户
积分 302
发帖 138
注册 2007-3-29
状态 离线
|
『第
4 楼』:
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信息挤掉了,而且之前也没做判断,不知道什么原因.
|
|
2007-4-13 00:37 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
5 楼』:
你按照我写的把引号全都加上试一下;看能否成功;
我估计是因为有些地方不加引号的话;
比如 set warning=
很有可能最后会多出几个空格;
我平时用的时候也不少出现这种情况;
所以现在以已经习惯了
set "warning="
if ""==""
你都打上引号试一下
|
|
2007-4-13 00:48 |
|
|
lililulula
中级用户
积分 302
发帖 138
注册 2007-3-29
状态 离线
|
『第
6 楼』:
都打上了 也没解决问题.
我单独弄个简单文本实验ftp.log里内容为12
bat文件
set "a=12"
for /f "delims=" %%i in (ftp.log) do if "%%i"=="%a%" echo fail也不行
难道是for语句后面do command跟if语句有问题?不知道应该是这样的格式~~~
|
|
2007-4-13 01:26 |
|
|
bjsh
银牌会员
积分 2000
发帖 621
注册 2007-1-1
状态 离线
|
『第
7 楼』:
我的bat内容是这样的
Quote: |
- @echo off
- set "warning=550 1234.txt: No such file or directory."
- for /f "delims=" %%i in (1.txt) do if "%%i"=="%warning%" echo fail && pause
BJSH发表于: 2007-04-12 13:04 |
|
其中所测试的1.txt内容是这样的
Quote: |
- 550 1234.txt: No such file or directory.
BJSH发表于: 2007-04-12 13:05 |
|
回显是这样的:
Quote: |
- C:\>1
- fail
- 请按任意键继续. . .
BJSH发表于: 2007-04-12 13:05 |
|
正确执行啊.不是吗??
|
|
2007-4-13 02:16 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
8 楼』:
为十么非要用 for
findstr "^550" .log &&(echo fail)
不是更好?
|
|
2007-4-13 02:19 |
|
|
lililulula
中级用户
积分 302
发帖 138
注册 2007-3-29
状态 离线
|
『第
9 楼』:
原因终于被我找出来了ftp登陆信息导出的问本在某些句后会有结束符,类似"□"在我那句出错的语句后就有这个符号的出现,
550 1234.txt: No such file or directory.□
在editplus下可以看到,现在的问题就是怎么让导出无结束符,或者怎么用参数去除,delims只替换回车和空格?
|
|
2007-4-13 03:20 |
|
|
lililulula
中级用户
积分 302
发帖 138
注册 2007-3-29
状态 离线
|
『第
10 楼』:
vkill兄的findstr很好 谢谢
|
|
2007-4-13 03:28 |
|