題 如何使用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

有人可以解釋為什麼,以及如何得到我想要的結果?


6
2017-07-30 16:05


起源




答案:


據我所知,一旦你進入交互式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

(我現在無法測試第二個例子,所以如果它不起作用,請告訴我)


7
2017-07-30 16:21



謝謝。它不起作用,存在身份驗證錯誤(使用匿名和電子郵件)。但是,對於邏輯,這個ftp命令工作“ls -R save.txt” - mins
雖然上面的命令是正確的,一些FTP服務器端實現刪除了對支持 ls -R,見: support.microsoft.com/kb/2007929 - malat


假設您通過命令行使用簡單的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

4
2018-06-15 18:41





ftp> dir * Sample.txt

這對我有用。


0
2018-04-24 11:48



歡迎來到超級用戶。您的 回答 可以通過解釋來改善 為什麼/如何 您的解決方案修復/解決OP問題。此外,從命令的外觀來看,這不會創建OP所需的遞歸目錄輸出。 - Twisty Impersonator