2015-09-02 4 views
-1

У меня есть один файл bat, который проверяет наличие CSV-файла в sftp-местоположении.Проверить расширение файла в sftp пакетном файле

Если CSV файл присутствует на сервере SFTP, то она успешно загружает файл в локальный и выход с 0.

Если .csv файла нет, то летучая мышь файл завершает обработку со статусом выхода 1.

Я использую ниже битой файл для SFTP:

echo open sftp://<username>:<password><server_name> -hostkey="<server host key>" >> ftpcmd.dat 
echo get /shared/sftp/test.csv >> ftpcmd.dat 
echo exit >> ftpcmd.dat 
D:\Winscp\winscp.com /script=ftpcmd.dat 
del ftpcmd.dat 

Проблема -
мне нужно проверить для расширения файла также в том же сценарии, как часть требований. Если в местоположении сервера sftp присутствует файл с другими расширениями, сценарий sftp завершится неудачно или выйдет с некоторым статусом.

Текущее поведение - Если файл .txt присутствует в местоположении sftp, тогда пакетный файл выходит со статусом 1. Мне нужно выйти из этого условия с каким-либо другим статусом выхода.

Пожалуйста, предложите, как я могу реализовать это условие проверки расширения файла в том же файле bat, что и sftp.

ответ

0

Прямолинейный/упрощенный подход был бы дополнительно проверить .txt когда нет .csv и в случае успеха установить код выхода на 2:

for %%a in (csv txt) do (
    winscp.com /command^
     "open sftp://<username>:<password><server_name> -hostkey=""<server host key>"""^
     "get /shared/sftp/test.%%a"^
     "exit" 
    if "%errorlevel%" equ 0 if %%a==csv (exit /b 0) else (exit /b 2) 
) 

Кода выхода:

  • 0 : CSV был загружен
  • 1: CSV и TXT оба отсутствуют
  • 2: TXT был загружен

Дополнительная информация о параметрах командной строки: official docs.

+0

я попытался это, но он не работает, потому что нижеуказанный код всегда возвращает код 0 выхода, поэтому он не собирается Равен 1: > ftpcmd.dat ( эха открытого SFTP: // : - hostkey = "<серверный ключ хоста>" echo get /shared/sftp/test.csv echo exit ) D: \ Winscp \ winscp.com /script=ftpcmd.dat – dsAnjali

+0

См. обновленный код. – wOxxOm

Смежные вопросы