我通过搜索找到了这个网站,这对我很有帮助。我能够修改以前解决方案的一部分来做我需要的,但我仍然需要一些帮助。我需要在批处理文件中执行此操作,并希望获得一两个解决方案。
我需要做的是将 1 到 10 个 zip 文件从我的 PC 传输到多个 FTP 服务器。然后我需要检查以确保它们已成功转移。在我的 PC 上,我使用的是常规的 MS FTP,而服务器使用的是 IndiFTPD。除了检查部分,我已经完成了所有工作。一些 FTP 服务器是拨号和无线的,它们会不时断开连接。因此,如果我要传输 3 个文件并且第一个文件失败但其他两个文件成功,我的脚本会将其列为成功。
我已经能够计算出传输文件夹中有多少个 zip 文件并将其放入变量中。代码是:
@echo off
for /f %%A in ('dir *.zip ^| find "File(s)"') do set cnt=%%A
echo Zip File count = %cnt%
我遇到的问题是从 FTP 传输的文本日志文件中获取相同的信息,然后比较两者以确保它们相同。这是我将进行的 FTP 传输日志的示例:
ftp> Connected to Host1.
open Host1 21
220 Connected to IndiFTPD
ftp> Username user
user1
331 Password required for Folder1.
230 User user1 logged in.
ftp> Hash mark printing On ftp: (2048 bytes/hash mark) .
ftp> hash
binary
200 Type is set to I.
ftp> mput *.zip
200 PORT command successful.
150 Opening BINARY mode data connection for 2012_07_01_03_40_1_3_TESTFTPs.zip.
###############################################################################################
226 [Bytes: 195046][Time: 1.13 s][Speed: 168.26 K/s]
ftp: 195046 bytes sent in Seconds Kbytes/sec.
0.78251.67200 PORT command successful.
150 Opening BINARY mode data connection for 2012_07_01_03_40_2_3_TESTFTPs.zip.
###############################################################################################
226 [Bytes: 195046][Time: 1.13 s][Speed: 168.41 K/s]
ftp: 195046 bytes sent in Seconds Kbytes/sec.
0.77253.31200 PORT command successful.
150 Opening BINARY mode data connection for 2012_07_01_03_40_3_3_TESTFTPs.zip.
###############################################################################################
226 [Bytes: 195046][Time: 1.14 s][Speed: 166.79 K/s]
ftp: 195046 bytes sent in Seconds Kbytes/sec.
ftp> 0.78249.42bye
221 Exit.
我希望能够使用%cnt%
脚本第一部分中的变量来获取我拥有的 zip 文件的数量。然后我希望能够在名为 terminal-ftp.txt 的日志文件中计算“226 [Bytes”的数量。然后,一旦我有两个变量形式的值,我需要比较它们以确保我有 3 个 FTP 文件和 3 个成功的 226 传输。如果它们不匹配,那么我需要将其标记为重试。