Я много пробовал (например, ЭТО и другие сообщения), но у меня ничего не работает.
Я анализирую файл, чтобы получить несколько результатов (например, get_AC-NAME.bat):
for /f "tokens=2 delims=\,]" %%i in ('findstr Sessions\ _conf\WinSCP.ini') do @echo %%i
Я хотел бы использовать каждый отдельный результат в качестве переменной для передачи в другой пакетный файл (например, get_log.bat):
@echo off
cls
if "%~1" == "" goto ERROR
::set Parameter
set LOGPATH=PATH_TO\WinSCP.log
set AC-LOGS-DIR=PATH_TO\AC-Logs
set WINSCP-DIR=PATH_TO\_tools\
set NOW=%DATE:~-4%-%DATE:~3,2%-%DATE:~0,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%
md %AC-LOGS-DIR%\%NOW%
:MENU
set AC-NAME=%1
"%WINSCP-DIR%\WinSCP.com" ^
/log=%LOGPATH% /ini=%AC-LOGS-DIR%\_conf\WinSCP.ini ^
/command ^
"open %AC-NAME% -hostkey=*" ^
"call tar cvzf /data/%AC-NAME%.tgz /var/log/app-log*" ^
"get "/data/%AC-NAME%.tgz" "%AC-LOGS-DIR%\%NOW%\"" ^
"rm /data/%AC-NAME%.tgz" ^
"exit"
timeout /T 5 /NOBREAK
set WINSCP_RESULT=%ERRORLEVEL%
if %WINSCP_RESULT% equ 0 (
echo Success
) else (
echo Error
)
exit /b %WINSCP_RESULT%
:ERROR
echo Use the rigt way: %0 AC-NAME
Что у меня естьсделать?Как я могу объединить обе партии?Я не понимаю.
Спасибо за вашу помощь.
- Обновление: Сначала я пытался создать динамическое меню на основе результатов для findstr - не так просто.Теперь я в порядке со второй целью, использующей «get_log.bat% 1», но если это возможно, я был бы доволен своей первой целью.