如何将子查询的结果存储在 cmd 中的变量中?

如何将子查询的结果存储在 cmd 中的变量中?

这是我的蝙蝠文件:

@echo off
 for /F "tokens=* delims=," %%a in ('type C:\LocalSecrets\Depolyment.csv ^| findstr "%DomainName%"') do call :parcsv %%a
 goto :EOF

:parcsv
 echo "%~1" "%~2" "%~3" "%~4"
 set x_cola=%~1
 set x_colb=%~2
 set x_colc=%~3
 set x_cold=%~4
 goto :EOF

我想要做的是将其存储type C:\LocalSecrets\Depolyment.csv ^| findstr "%DomainName%"在局部变量中,然后调用for该变量。

我怎样才能做到这一点?

答案1

SET MYCMD=findstr "%DomainName%" c:\localsecrets\deployment.csv
for /F "tokens=* delims=," %%a in ('%MYCMD%') do  ....  

请注意,findstr 可以将文件名作为第二个参数,从而避免使用管道,这在将命令存储在环境变量中时会出现问题。

PS.
我假设您只希望在文件中第一次出现 %DomainName% 时调用 parcsv。
否则 CALL 构造根本没有意义。

相关内容