2

При попытке вызвать пакетный файл в другом пакетном файле сценарий завершает синхронизацию удаленных папок, но затем не может вызвать другой пакетный файл.

@echo off

"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="C:\Test\TestLog.log" /ini=nul ^
/command ^
"open sftp://test/ -hostkey=""ssh-dss 2048 xxxxxxxxxxxxxxxxxxxxxxxxx=""" ^
"synchronize remote \\Please\Send\Some\Help /Dir/Test" ^
"exit"

set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)

exit /b %WINSCP_RESULT%

CALL movefile

pause

1 ответ1

0

Просто переместите команду вызова выше команды выхода, иначе она будет завершена до вызова.


Что изменить

Это. , ,

exit /b %WINSCP_RESULT%
CALL movefile
pause

Становится этим. , ,

CALL movefile
pause
exit /b %WINSCP_RESULT%

скрипт

@echo off

"C:\Program Files (x86)\WinSCP\WinSCP.com" ^
/log="C:\Test\TestLog.log" /ini=nul ^
/command ^
"open sftp://test/ -hostkey=""ssh-dss 2048 xxxxxxxxxxxxxxxxxxxxxxxxx=""" ^
"synchronize remote \\Please\Send\Some\Help /Dir/Test" ^
"exit"

set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)

CALL movefile
pause
exit /b %WINSCP_RESULT%

Примечание: Вы также захотите убедиться, что вызываемый файл пакетного сценария действительно существует, поэтому убедитесь, что это точное местоположение в исполняемой команде пакетного сценария, которая вызывает movefile .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .