Если вы посмотрите на эту строку:
IF %inputfile_cnt%!==!0 GOTO PROCEED
Это не будет GOTO PROCEED
, потому что ваше сравнение ожидает, что #!
будет соответствовать !0
, (где #
- количество строк, содержащих TXT
) , но этого явно не будет.
Чтобы исправить это, вы обычно используете следующий синтаксис:
IF NOT "%inputfile_cnt%"=="0" GOTO PROCEED
Затем вы измените строку под ней на:
GOTO END
Вот переписать ваш фрагмент, попробуйте и при необходимости предоставьте отзыв:
REM ************************ Determine input file count ************************
SET "target=TXT"
CD /D "%binpath%"
FOR %%A IN (logpath,ftp_log)DO IF NOT DEFINED %%A GOTO END
FOR %%A IN ("inputfilelist.txt","unix_ftp.config","%logpath%"
)DO IF NOT EXIST "%%~A" GOTO END
FOR /F %%A IN ('FIND /C "%target%"^<"inputfilelist.txt"'
)DO IF "%%A"=="0" GOTO END
:PROCEED
REM *** Dynamically create the ftp get commands file, and download the files ***
COPY /Y "unix_ftp.config" "unixftp_get1.txt"
( FOR /F "DELIMS=" %%A IN ("inputfilelist.txt")DO ECHO get %%A
ECHO bye
)>>"unixftp_get1.txt"
ftp -v -s:"unixftp_get1.txt" %server% >>"%logpath%%ftp_log%"