Я создаю командный файл для передачи файлов из Windows на сервер Linux через sftp. Я использую PSFTP для этого.
Подход, который я использую, заключается в том, что все команды для перемещения файлов помещаются в файл данных, а затем файл выполняется после подключения через psftp.
@echo off
SET /P uname=Please enter your UserId:
IF "%uname%"=="" GOTO Error
pause
echo mkdir /finreports/CUSTOM_DATA_UPLOAD/%uname%>> ftpcmd.dat
echo cd /finreports/CUSTOM_DATA_UPLOAD/%uname%>> ftpcmd.dat
echo lcd C:\images>> ftpcmd.dat
echo mput C:\images\*.jpg>> ftpcmd.dat
echo bye>> ftpcmd.dat
C:\software\psftp.exe -be username@100.1.100.1 -pw password -b ftpcmd.dat
del ftpcmd.dat
GOTO End
:Error
ECHO You did not enter your UserId
pause
Теперь моя проблема в том, что если mkdir завершится неудачно из-за того, что путь уже существует, другие команды не будут выполнены. Есть ли способ игнорировать ошибку во время mkdir.
Если я использую -be при подключении к psftp, он игнорирует все ошибки, которые мне не нужны.