通过Windows命令行读取平面文件

时间:2014-06-27 03:52:32

标签: windows batch-file command-line

我有以下平面文件

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命令行的新手,如果我做错了,请纠正我。我的最终目标是将其存储在变量中。谢谢!

1 个答案:

答案 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之后的行上的任何尾随空格(可能由某些编辑器留下)都不包含在分配的值中。