私はこのサイトを検索を使って見つけました。これは大きな助けになりました。以前のソリューションの一部を変更して必要なことを行うことができましたが、それでも助けが必要です。私はこれをバッチファイルで行う必要があり、1つか2つの解決策を得ることを望んでいました。
私がする必要があるのは私のPCから複数のFTPサーバーに1から10のzipファイルを転送することです。次に、それらが正常に転送されたことを確認する必要があります。私のPCでは通常のMSFTPを使用しており、サーバーはIndiFTPDを使用しています。チェック部分以外は全部やりました。一部のFTPサーバーはダイヤルアップおよびワイヤレスであり、時々切断されます。したがって、たとえば3つのファイルを転送していて、最初のファイルは失敗したが、他の2つのファイルは成功した場合、スクリプトはそれを成功としてリストします。
転送フォルダーにあるzipファイルの数を取得し、それを変数に入れることができました。そのためのコードは次のとおりです。
@echo off
for /f %%A in ('dir *.zip ^| find "File(s)"') do set cnt=%%A
echo Zip File count = %cnt%
私が問題を抱えているのは、FTP転送のテキストログファイルから同じ情報を取得し、2つを比較して同じであることを確認することです。これが私が作る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[バイト」」の数をカウントできるようにしたいと思います。次に、両方の値が可変形式になったら、それらを比較して、3つのFTPファイルと3つの成功した226転送があることを確認する必要があります。それらが一致しない場合は、再試行のためにフラグを立てる必要があります。