Board logo

标题: [文本处理] [已解决]批处理下载FTP时mls生成的文件列表有换行 [打印本页]

作者: zc_0101    时间: 2009-7-13 18:05     标题: [已解决]批处理下载FTP时mls生成的文件列表有换行

是这样:我本机ftp到远程服务器上,用mls命令把一个目录下的文件列表生成到本地:

例如:
  1. mls - D:\test.txt
复制代码
生成了一个文件列表,这个列表用记事本打开是一行挨着一行的,但是如果用DreamWeaver或者NotePad++打开的话,会看到每一行之间都有一个“回车”,即中间都隔了一行,就是中间隔的这一行,让我在使用for命令时,产生这样的现象:
我用for循环,取出每一行的数据,再依次写入一个文本文件,结果发现,后来生成的这个文本文件,文件名后都有一个小黑块■(宽度是它的一半),
我想知道怎样避免这个想象,因为多了那个小黑块,让我在进行文件是否存在的判断时,总是判断为不存在。
如果看不明白,请回复,我再说详细点,谢谢!

[attach]1658[/attach]

给大家点材料测试一下 :
这是我mls下来的文本文件,大家下载到一个目录下

[attach]1652[/attach]

然后把以下代码拷贝在一个相同目录下的批处理文件中:
  1. @echo off
  2. for /f "delims=囧" %%j in (model.txt) do (
  3. echo 正在创建下载文件%%j 的脚本,请稍候…………>test.txt
  4. echo zc_0101>>test.txt
  5. echo 851111>>test.txt
  6. echo type Binary>>test.txt
  7. echo cd aaa>>test.txt
  8. echo lcd bbb>>test.txt
  9. echo mget "%%j">>test.txt
  10. echo close>>test.txt
  11. echo quit>>test.txt
  12. )
  13. pause
  14. exit
复制代码
执行后查看test.txt文件,看一下文件名后是否有小黑块?

到底是mls命令的使用问题,还是for循环用得有问题?
作者: zc_0101    时间: 2009-7-15 09:19

哪位有类似的经历,也 可以 说一下 啊
作者: Batcher    时间: 2009-7-15 11:05

先把那些回车符删掉吧:
  1. @echo off
  2. mshta "javascript:var fso=new ActiveXObject('Scripting.FileSystemObject');fso.OpenTextFile('D:\\a.txt',2,true).Write(fso.OpenTextFile('D:\\test.txt').ReadAll().replace(/\r/g, ''));close()"
复制代码

作者: zc_0101    时间: 2009-7-15 11:09

原帖由 Batcher 于 2009-7-15 11:05 发表
先把那些回车符删掉吧:@echo off
mshta "javascript:var fso=new ActiveXObject('Scripting.FileSystemObject');fso.OpenTextFile('D:\\a.txt',2,true).Write(fso.OpenTextFile('D:\\test.txt').ReadAll().replace ...

谢谢老大,我试试。
作者: zc_0101    时间: 2009-7-15 11:18

原帖由 Batcher 于 2009-7-15 11:05 发表
先把那些回车符删掉吧:@echo off
mshta "javascript:var fso=new ActiveXObject('Scripting.FileSystemObject');fso.OpenTextFile('D:\\a.txt',2,true).Write(fso.OpenTextFile('D:\\test.txt').ReadAll().replace ...

[attach]1659[/attach]
老大,成了这个样子了。。。
作者: Batcher    时间: 2009-7-15 11:54

  1. @echo off
  2. mshta "javascript:var fso=new ActiveXObject('Scripting.FileSystemObject');fso.OpenTextFile('D:\\1.txt',2,true).Write(fso.OpenTextFile('D:\\test.txt').ReadAll().replace(/\r\n/g, '\n\n'));close()"
  3. mshta "javascript:var fso=new ActiveXObject('Scripting.FileSystemObject');fso.OpenTextFile('D:\\2.txt',2,true).Write(fso.OpenTextFile('D:\\1.txt').ReadAll().replace(/\r/g, ''));close()"
  4. mshta "javascript:var fso=new ActiveXObject('Scripting.FileSystemObject');fso.OpenTextFile('D:\\result.txt',2,true).Write(fso.OpenTextFile('D:\\2.txt').ReadAll().replace(/\n\n/g, '\r\n'));close()"
复制代码

作者: zc_0101    时间: 2009-7-15 17:04

原帖由 Batcher 于 2009-7-15 11:54 发表
@echo off
mshta "javascript:var fso=new ActiveXObject('Scripting.FileSystemObject');fso.OpenTextFile('D:\\1.txt',2,true).Write(fso.OpenTextFile('D:\\test.txt').ReadAll().replace(/\r\n/g, '\n\n'));clo ...


谢谢,经过努力,终于解决,特此更新帖子:

【原创】批处理完成FTP下载远程备份文件到本地





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2