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

min*_*ins 8 ftp windows-7 command-line

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

ftp> ls -R
Run Code Online (Sandbox Code Playgroud)

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

ftp> ls -R . save.txt
usage: ls remote-directory local-file
Run Code Online (Sandbox Code Playgroud)

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

小智 9

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

但是您可以将命令通过管道传输到 ftp 命令或使用命令指定一个文件(如果您需要多个命令,则需要,例如指定用户名/密码)

然后将 std 重定向到一个文件。

像这样:

echo ls -R | ftp yourHostname > save.txt
Run Code Online (Sandbox Code Playgroud)

或者您将所有命令(比如 mycommands.txt)放在一个文本文件中并使用

ftp -s:mycommands.txt > save.txt
Run Code Online (Sandbox Code Playgroud)

mycommmands.txt 看起来像这样

user yourName yourPassword
open yourHostname
cd someDirectory
ls -R
Run Code Online (Sandbox Code Playgroud)

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


小智 5

假设您通过命令行使用简单的 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
Run Code Online (Sandbox Code Playgroud)