web-dev-qa-db-ja.com

別のバッチファイル内でバッチファイルを呼び出すにはどうすればよいですか?

別のバッチファイル内でバッチファイルを呼び出そうとすると、スクリプトはリモートフォルダーの同期を完了しますが、他のバッチファイルの呼び出しに失敗します。

@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
2
Westfall_T

call コマンドを exit コマンドの上に移動するだけです。そうしないと、呼び出す前に終了します。


何を変更するか

これ。 。 。

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を呼び出すバッチスクリプトコマンドの実行

0
Pimp Juice IT