我有一个.txt,包含900多个带有完整目录的图片文件名(例如:2017 / conference / tsd-60545)。
我的Windows资源管理器正从我公司的ftp中拔出,并且其中有超过160K的照片。
我只需要我的.txt文件中的900张图片。
有没有办法实现自动化?手册让我慢慢死了。
答案 0 :(得分:0)
这会从ftp :: //ftp.mydomain.com/2017/conference/tsd-60545 下载所有jpgs
使用vim,awk或sed等工具,根据txt
文件的内容创建一个名为“commands.ftp”的文件。然后使用带有选项ftp
的windows -s
命令来处理它。
<强> commands.ftp 强>
open ftp.mydomain.com
user myusername mypassword
cd mysubdirectory
prompt
mget 2017/conference/tsd-60545/*.jpg
close
quit
批处理文件
ftp -s:commands.ftp -n
答案 1 :(得分:0)
这是未经测试的,因为我现在没有使用ftp服务器来测试它,但这应该可行。
创建一个.cmd
或.bat
扩展名的批处理文件,确保您的测试文件位于同一目录中,或在批处理文件中指定它的完整路径。
基本上,您回显整个文件连接。运行for循环以从FTP文件中读取,并为文件中的每个条目执行get
或put
。一旦完成,它将运行ftp命令并从文件中读取。
<强> MyFTPscript.cmd 强>
@echo off
echo user username password> ftpto.dat
for /F "tokens=*" %%A in (myfile.txt) do echo get %%A >> ftpto.dat
echo quit>> ftpto.dat
ftp -n -s:ftpto.dat ftp.imagesserver.com
您可以先测试它,以确保它实际上是在写.dat
文件,而不是在最后一个命令之前实际添加rem
。像这样:
rem ftp -n -s:ftpto.dat ftp.imagesserver.com
如果您对dat文件的内容看起来没问题感到满意,可以删除rem
并运行脚本,然后执行所有操作。
无需删除文件,因为每次运行命令文件时都会重新写入文件。