【问题标题】:Upload sub-folders to FTP in Windows command line在 Windows 命令行中将子文件夹上传到 FTP
【发布时间】:2011-05-19 14:51:06
【问题描述】:

我必须在 Windows 上上传整个文件夹命令行。我无法让它上​​传包含它的文件的子目录。

ftp
open snuzzer.dk
username
password
mput *.*

这只会上传根目录下的所有文件。

谁能帮帮我?

【问题讨论】:

    标签: windows cmd ftp directory


    【解决方案1】:

    一种方法是使用带有 -R 选项的 ncftpput。

    【讨论】:

    • 非常感谢!这很简单。您知道是否有一个选项仅在本地文件比远程文件更新时才上传?我在文档中找不到这个。
    • 我不这么认为。 'rsync' 程序可以做到这一点,但它需要在客户端和服务器上。
    • 另外,您可以设置一个脚本,使用标记文件与 find 命令一起使用:“find . -type f -newer marker”来制作要发送的文件列表。然后在上传后“触摸标记”。但这变得复杂了。而且无论如何,您使用的是 Windows 而不是 unix,因此除非您使用 cygwin,否则安装所有这些都会很麻烦。
    【解决方案2】:

    您可以使用批处理脚本为ftp 创建命令文件,然后使用该文件发出ftp 命令。

    有点像这样:

    @ECHO OFF    
    ECHO open snuzzer.dk>command.txt
    ECHO username>>command.txt
    ECHO password>>command.txt
    
    FOR /F "delims=" %%A IN ('DIR /b /s /a-d "%1"') DO (
       ECHO put "%%A">>command.txt
    )
    
    ECHO close>>command.txt
    
    ftp /s:command.txt
    

    FOR 循环只是循环地创建所有文件的列表。

    【讨论】:

    • 谢谢你。我选择使用 ncftpput。这看起来很简单。
    【解决方案3】:

    Windows 命令行 ftp.exe 客户端不支持对(子)文件夹的操作。

    您必须使用第 3 方 FTP 客户端。


    例如 WinSCP 你可以使用:

    winscp.com /log=ftp.log /command ^
        "open ftp://username:password@ftp.example.com/" ^
        "put *" ^
        "exit"
    

    converting Windows ftp.exe script to WinSCP script 有一个指南。虽然更容易的是拥有WinSCP GUI generate the script or batch file for you

    (我是 WinSCP 的作者)

    【讨论】:

      猜你喜欢
      • 2018-07-24
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 2012-04-21
      • 1970-01-01
      • 2020-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多