Отправьте файлы на FTP-сервер, а затем проверьте, действительно ли он был отправлен с помощью .bat - PullRequest
0 голосов
/ 06 июля 2018

Я делал код .bat для отправки .txt файлов в определенную папку на моем ftp-сервере. Но я также хотел проверить, действительно ли эти файлы были загружены. Я много искал в интернете и, к сожалению, понял, что это невозможно сделать с помощью команды .bat. Поэтому я попытался использовать другой способ: .bat отправит файлы, а затем вернет их в папку, если файл уже существует в папке, он покажет сообщение о том, что файл был успешно загружен.

Я сделал этот скрипт ниже, но часть «проверки загрузки» не работает правильно.

Кто-нибудь может мне помочь?

@echo off
@setlocal enableextensions
@cd /d "%~dp0"
mode 34,12
color 0a

Ping www.google.nl -n 1 -w 1000 >nul 2>nul
if errorlevel 1 (set internet=Nao foi possivel se conectar ao servidor) else (set internet=Conectado) >nul 2>nul

echo  %internet%

if "%internet%"=="No connection" goto 1
if "%internet%"=="Conected" goto 2

:1 
echo  No connection
echo.
echo  Try later...
echo.
pause
exit

:2
( echo open ftp.xxxxxxxxxxx.com
echo xxxxxxx
echo xxxxxxx
echo ascii
echo lcd "c:\Vendas Pay&Go\files"
echo cd "Vendas Cartões Pay&Go"
echo cd "ECO"

echo mput *.txt 
echo bye 
)> %temp%\ftpsend.dat
ftp -i -s:%temp%/ftpsend.dat >nul 2>nul
del /f /s /q %temp%\ftpsend.dat >nul 2>nul

( echo open ftp.xxxxxxx.com
echo xxxxxxx
echo xxxxxxx
echo ascii
echo lcd "c:\Vendas Pay&Go\files"
echo cd "Vendas Cartões Pay&Go"
echo cd "ECO"

echo mget *.txt 
echo bye 
)> %temp%\ftpsend.dat
ftp -i -s:%temp%/ftpsend2.dat >nul 2>nul
del /f /s /q %temp%\ftpsend2.dat >nul 2>nul

if %*.txt% exist goto3

:4
echo File was not uploaded
pause

:3
echo File Uploaded.
del /s /f /q "c:\Vendas Pay&Go\files\*.txt"

1 Ответ

0 голосов
/ 06 июля 2018

Если вы хотите условно выполнить отображение сообщения, вы можете сделать что-то вроде этого. && означает, что предыдущая команда была успешной. || означает, что предыдущая команда не была успешной.

(ftp -i -s:%temp%/ftpsend.dat | find /I "file successfully transferred" >nul) && (echo File Successfully Transferred) || ( echo File not transferred. Tray again later.)

Обновленная версия на основе комментариев ниже

(ftp -i -s:%temp%/ftpsend.dat | find /I "file successfully transferred" >nul) && (
        echo File successfully sent.
        del /f /s /q "c:\Vendas Pay&Go\files\*.txt" >nul
    ) || (
        cls
        echo File not uploaded. Try later.
    ) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...