如何批量使用多个参数?

时间:2018-10-15 09:08:56

标签: windows batch-file parameters

我尝试了很多(例如THIS和其他帖子),但对我来说没有用。

我正在解析文件以获取多个结果(例如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”,但是如果可能的话,我会对第一个目标感到满意。

0 个答案:

没有答案