windows - 如何批量使用多个参数?
问题描述
我尝试了很多(例如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”的第二个目标很好,但如果可能的话,我会对我的第一个目标感到满意。
解决方案
推荐阅读
- c# - CosmosDB 中已存在且未同时存在具有 id 的实体
- php - Nginx PHP-FastCGI:在 baseurl/backend/ 而不是 baseurl/ 下提供完整的 PHP 项目
- reactjs - 类型错误:cards.map 不是函数
- recursion - 在 RPM %files 部分中是否可以递归地指定一个目录及其所有文件和子目录?
- swift - 协议中的“覆盖”是什么意思?
- javascript - 拖放文件输入
- c++ - 为什么 WriteFile 需要延迟才能工作,或者在某些 Windows 机器上出现 ERROR_INVALID_PARAMETER?
- ios - Rossharp PoseStampedPublisher 中的 NullReferenceException
- perl - 如何在 perl 中动态创建包?
- css - 如何让一列占据网页中其余的水平空间