通过CMD创建FTP文件以及创建日期

时间:2016-06-30 05:56:37

标签: windows batch-file ftp

我有一个批处理文件,用于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

1 个答案:

答案 0 :(得分:1)

Windows内置FTP客户端(import java.awt.*; import java.awt.event.*; import java.util.Optional; import javax.swing.*; import javax.swing.table.*; public class Main2 { public JComponent makeUI() { Object columnNames[] = {"Column 1", "Column 2", "Column 3"}; Object data[][] = { { "a", "a", "a" }, { "a", "a", "a" }, { "a", "a", "a" }, { "a", "a", "a" }, { "a", "a", "a" }, }; JTable table = new JTable(new DefaultTableModel(data, columnNames)); table.setDragEnabled(true); table.setDropMode(DropMode.INSERT_ROWS); table.addMouseMotionListener(new MouseAdapter() { @Override public void mouseDragged(MouseEvent e) { JComponent c = (JComponent) e.getComponent(); Optional.ofNullable(c.getTransferHandler()) .ifPresent(th -> th.exportAsDrag(c, e, TransferHandler.COPY)); } }); table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION); table.setColumnSelectionAllowed(true); table.setRowSelectionAllowed(true); JPanel p = new JPanel(new BorderLayout()); p.add(new JScrollPane(table)); p.add(new JTextField(), BorderLayout.SOUTH); return p; } public static void main(String... args) { EventQueue.invokeLater(() -> { JFrame f = new JFrame(); f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); f.getContentPane().add(new Main2().makeUI()); f.setSize(320, 240); f.setLocationRelativeTo(null); f.setVisible(true); }); } } )在下载时无法保留远程文件的时间戳(反之亦然)。

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

例如WinSCP scripting使用以下批处理文件(ftp.exe):

download.bat

另见Converting Windows FTP script to WinSCP script

您还可以拥有WinSCP generate the script file or even the batch file for you

(我是WinSCP的作者)