如何使用 Windows 7 FTP 客户端将 FTP 递归列表的输出重定向到本地文件?

如何使用 Windows 7 FTP 客户端将 FTP 递归列表的输出重定向到本地文件?

在 Windows 7 中使用 DOS 命令 FTP 时,我可以使用此 FTP 命令递归列出远程目录的所有文件:

ftp> ls -R

我无法将 ls -R 的输出发送到本地文件,FTP 一直在抱怨语法:

ftp> ls -R . save.txt
usage: ls remote-directory local-file

有人可以解释为什么以及如何得到我想要的结果吗?

答案1

据我所知,一旦进入交互式 ftp shell,就无法捕获输出。

但是您可以将命令传递给 ftp 命令,或者使用命令指定文件(如果您需要多个命令,则需要这样做,例如指定用户名/密码)

然后将 std 重定向到文件。

像这样:

echo ls -R | ftp yourHostname > save.txt

或者将所有命令(比如说 mycommands.txt)放在一个文本文件中,然后使用以下命令调用它

ftp -s:mycommands.txt > save.txt

mycommmands.txt 可能看起来像这样

user yourName yourPassword
open yourHostname
cd someDirectory
ls -R

(我现在无法测试第二个例子,如果它不起作用请告诉我)

答案2

假设您通过命令行使用简单的 ftp,使用带有 -Rl 选项的 dir 命令以递归方式搜索并将其复制到文件,然后使用 grep、find 或您的操作系统支持的任何方式搜索该文件。

ftp> dir -Rl education.txt
output to local-file: education.txt? y
227 Entering Passive Mode (9,62,119,15,138,239)
150 Opening ASCII mode data connection for file list
226 Transfer complete

答案3

ftp> dir * Sample.txt

这对我有用。

相关内容