将SFTP目录列表保存到本地txt文件

3
我在尝试将sftp服务器上的目录列表输出到本地.txt文件时遇到了问题。
我需要使用命令行,所以我已经发现putty几乎是唯一可以实现这个功能的客户端。
因此,我开始使用putty来解决这个问题。我已经成功地列出了我想要的目录(在psftp和pscp中都可以),这是putty sftp客户端和putty安全文件上传/下载客户端。
当使用pscp.exe时,我使用了以下脚本(用于.bat脚本):
start /WAIT D:\pscp.exe -sftp -v -batch -pw password -ls username@server.host:/directory/subdirectory/subdirectory

这是列出目录的命令。我尝试在其末尾添加“ C:\ filelist.txt”,但这只创建了一个空的本地文件,目录没有列在其中。
当使用psftp.exe时(对于.bat脚本也适用),可以使用以下脚本:
start /WAIT D:\psftp.exe username@server.host -v -be -bc -batch -pw password -b D:\listcommands.scr

当在psftp中调用listcommand.scr以启动更多命令时,它包含以下内容:

ls /directory/subdirectory/subdirectory > D:\listdir.txt

但是,无论哪种方法都不会将目录列表写入本地的.txt文件中。psftp.exe命令甚至不像pscp.exe命令那样创建一个空的.txt文件。如果没有">",listcommands.scr命令也无法工作。
感谢任何提供帮助的人。
1个回答

4
我认为"filelist.txt"文件是空的,因为您正在生成一个新命令,并且结果psftp命令的输出被写入不同的标准输出(stdout)文件,而不是您重定向到文件的标准输出(stdout)文件。
我刚刚尝试了start /WAIT D:\pscp.exe -sftp -v -batch -pw password -ls username@server.host:/directory/subdirectory/subdirectory > c:\filelist.txt,也得到了一个空文件。但是,如果我从命令行中删除start /WAIT,则filelist.txt现在包含正确的输出。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接