我有一个批处理文件,用于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
答案 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的作者)