我有以下平面文件
ETL details for the last run:
ETL Process Id : 23396187
ETL Name : MY_WORKFLOW
Run Name : MY_WORKFLOW: ETL Run - 2014-06-26 .....
我使用以下代码阅读
如果我运行以下
findstr /n . D:\MR\BOK\automation\test2.txt | findstr"4:ETL Name:":
输出为4:ETL Name: MY_WORKFLOW
但是当我将它设置为变量并回显时,它并没有给我任何东西
设置eplan = findstr / n。 D:\ MR \ BOK \ automation \ test2.txt | findstr“4:ETL名称:”:
echo%eplan%只是给出了 %EPLAN%
我是Windows命令行的新手,如果我做错了,请纠正我。我的最终目标是将其存储在变量中。谢谢!
答案 0 :(得分:0)
for /f "delims=" %%a in (`findstr /n . D:\MR\BOK\automation\test2.txt ^| findstr "4:ETL Name:" `) do set "eplan=%%a"
(未测试的)
应正确设置eplan
(或至少设置为您指定的字符串)
for /f
循环中的单引号字符串作为命令执行,for
接收输出。 delims=""
子句关闭默认分隔符集。行文本应用于元变量%%a
。管道前的插入符号(^
)告诉批处理管道是要执行的引用命令的一部分,而不是for
的一部分。
set "var=value"
语法确保value
之后的行上的任何尾随空格(可能由某些编辑器留下)都不包含在分配的值中。