【发布时间】:2014-08-25 16:12:48
【问题描述】:
我需要通过 ftp 将位于 server1 中名为 abc_20140221_123456 的文件夹中的文件下载到我的本地目录。问题是文件夹名称的最后六个字符不固定。例如,今天该文件夹可能称为 abc_20140221_123456,明天可能称为 abc_20140221_234567。我在编写自动化批处理脚本来做同样的事情时遇到问题。
这是我正在编写的脚本:
@echo off
setlocal
set buildDate=%DATE:~0,10%
set dateStr=%buildDate:~6,4%%buildDate:~3,2%%buildDate:~0,2%
set folderName=abc_%dateStr%_
echo open server1>>file.tmp
echo username>>file.tmp
echo password>>file.tmp
echo prompt>> file.tmp
echo binary>>file.tmp
echo lcd E:\>>file.tmp
:: Not sure how to cd to abc_20140221_* from here
echo get filename.txt>>file.tmp
echo y>>file.tmp
echo disconnect>>file.tmp
echo bye>>file.tmp
ftp -i -s:file.tmp
pause
我知道我可以像这样使用 for 遍历目录:
for /d %%d in (' %path%/*%folderName%* ') do (
echo get filename.txt>>file.tmp
echo y>>file.tmp
)
但是“for”在 ftp 中不起作用>。
非常感谢任何帮助。谢谢。
【问题讨论】:
-
cd abc_20140221_*是否在您的 FTP 服务器中工作?通常的方法是打开一个连接并将dir命令记录到一个文本文件中,然后解析该文件夹名称的文本文件 - 并动态创建一个脚本以打开一个新的下载连接。 -
我刚试过这样做,但 cd abc_20140221_* 在 ftp 提示符下不起作用。我明白你想说什么。但是有没有更简单的方法呢?
-
不,因为 FTP 没有提供通过通配符更改文件夹的方法,因为您已经尝试过。您也许可以使用具有诸如此类额外功能的第三方 FTP 工具,但 Windows FTP 是有限的。
标签: windows batch-file ftp cmd remote-access