【问题标题】:FTP files via CMD along with date created通过 CMD 的 FTP 文件以及创建日期
【发布时间】:2016-06-30 05:56:37
【问题描述】:

我有一个批处理文件,它可以对我服务器上特定目录中的所有文件进行 ftp,但是当使用 FTP 完成时,文件的创建日期会更改。有什么办法可以保留它,或者将它与文件名连接起来?我需要此信息以进行进一步处理。

这是我的批处理文件代码:

@echo off
echo open *ip* >> temp.txt
echo *user* >> temp.txt
echo *pass* >> temp.txt
echo cd *directory* >> temp.txt
echo lcd *localdirectory* >> temp.txt
echo prompt no >> temp.txt
echo mget *.q* >> temp.txt
echo quit >> temp.txt
ftp -s:temp.txt
del temp.txt
exit

【问题讨论】:

    标签: windows batch-file ftp


    【解决方案1】:

    Windows 内置 FTP 客户端 (ftp.exe) 在下载时无法保留远程文件的时间戳(反之亦然)。

    您必须使用另一个 FTP 客户端。大多数其他 FTP 客户端都会保留时间戳。


    例如,WinSCP scripting 使用以下批处理文件 (download.bat):

    winscp.com /ini=nul /log=download.log /command ^
        "open ftp://user:pass@ftp.example.com/" ^
        "cd /directory" ^
        "lcd c:\localdirectory" ^
        "get *.q*" ^
        "exit"
    

    另见Converting Windows FTP script to WinSCP script

    你也可以有WinSCP generate the script file or even the batch file for you

    (我是 WinSCP 的作者)

    【讨论】:

    • 酷,看起来不错,但问题是我将它用于 Web 应用程序,我不能到处要求我的客户在他的服务器上安装一个 winscp。有没有其他方法可以做到这一点?
    • 你为什么还要在 Web 应用程序中使用ftp.exe?您的 Web 应用程序使用什么语言?
    • 它是用 Java 编写的。我不直接使用 ftp.exe,而是通过我的 windows 服务器上的批处理文件触发它
    • 那么为什么不用Java实现FTP呢?为什么叫批处理文件?
    • 不管怎样,如果可以将批处理文件传递到客户端的服务器,为什么不以同样的方式传递 WinSCP 二进制文件呢?不必安装 WinSCP,将二进制文件部署到与批处理文件相同的文件夹中。
    猜你喜欢
    • 1970-01-01
    • 2011-05-26
    • 2011-05-18
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多