-s:"%~f0"
の機能を理解していることを確認してください。
FTPスクリプトの場合と同様に、ftp.exe
は、バッチファイル自体を実行するように指示します。
ftp.exe
は、バッチファイルを実行し、それは:
- はあなたに
:loop
とftp.exe
ライン用の2つの"無効なコマンド"エラーが発生します。
- 実際のFTPスクリプト
- を実行し、あなたに
TIMEOUT 10
とgoto loop
コマンド用の2つの「無効なコマンド」エラーが発生します。一方
、バッチファイルインタープリタ(cmd.exe
)を効果的にバッチファイルを解釈停止することを告げるものを、GOTO:EOF
を見ています。したがって、TIMEOUT 10
とgoto loop
は決して実行されません。
あなたがする必要があります。
:loop
ftp -i -s:"%~f0"&GOTO:afterftp
open Server_IPADDRESS
userName
Password
get test.txt
close
bye
:afterftp
TIMEOUT 10
goto loop
より堅牢な
けれどもの方法は、FTPスクリプトやバッチファイルを分離することである
:loop
ftp -i -s:ftp.txt
TIMEOUT 10
goto loop
またはFTPスクリプト用の一時ファイルを使用します。
:loop
echo open Server_IPADDRESS> ftp.txt
echo userName>> ftp.txt
echo Password>> ftp.txt
echo get test.txt>> ftp.txt
echo close>> ftp.txt
ftp -i -s:ftp.txt
del ftp.txt
TIMEOUT 10
goto loop
(実際には、不要のすべてのループ内に再作成ftp.txt
)
を