Windows批处理脚本:从文本文件中获取特定列下的值

Windows批处理脚本:从文本文件中获取特定列下的值,windows,batch-file,Windows,Batch File,我有一个包含多列的文本文件 Column1 Column2 Column3 AS_OF_DATE 1 2 3 07/12/2017 2 3 4 07/12/2017 ..... n行数 AS_OF_DATE表示文本文件中数据的日期。所有行的日期都相同。AS_OF_DATE列的位置可以在任何位置。 现在,我的要求是选择列下的日期作为_OF _date,并将其存储在单独的文件中 在这方面的任何帮助都表示感谢 谢谢 KVB此代码

我有一个包含多列的文本文件

Column1 Column2 Column3 AS_OF_DATE
1        2       3      07/12/2017
2        3       4      07/12/2017
.....
n行数 AS_OF_DATE表示文本文件中数据的日期。所有行的日期都相同。AS_OF_DATE列的位置可以在任何位置。 现在,我的要求是选择列下的日期作为_OF _date,并将其存储在单独的文件中

在这方面的任何帮助都表示感谢

谢谢
KVB

此代码对您的数据进行了许多假设:

  • 标题行中没有
    *
    字符
  • 标题行中没有像
    &
    |
    等有毒字符
  • 列名或列值中没有空格
  • 所有列都已完全填充
  • 您的输入文件使用标准的Windows行结尾或
    ,而不是
    的unix结尾
可能还有其他我不记得的限制

@echo关闭
setlocal
::定义文件
设置“input=test.txt”
设置“output=out.txt”
::读取第一行(列标题)
“%output%”(
对于(“%input%”中的/f“skip=1 usebackq eol=tokens=%col%”%%A,执行echo%%A
)
更新:这里是一个仅读取前两行的修改

@echo关闭
setlocal
::定义文件
设置“input=test.txt”
设置“output=out.txt”
阅读前两行
“%output%”回显%%A

此代码对您的数据进行了许多假设:

  • 标题行中没有
    *
    字符
  • 标题行中没有像
    &
    |
    等有毒字符
  • 列名或列值中没有空格
  • 所有列都已完全填充
  • 您的输入文件使用标准的Windows行结尾或
    ,而不是
    的unix结尾
可能还有其他我不记得的限制

@echo关闭
setlocal
::定义文件
设置“input=test.txt”
设置“output=out.txt”
::读取第一行(列标题)
“%output%”(
对于(“%input%”中的/f“skip=1 usebackq eol=tokens=%col%”%%A,执行echo%%A
)
更新:这里是一个仅读取前两行的修改

@echo关闭
setlocal
::定义文件
设置“input=test.txt”
设置“output=out.txt”
阅读前两行
“%output%”回显%%A

而不是拉取文件中的所有记录。我们是否可以只拉取文件中的前两条记录并检查此逻辑?AS\u of\u DATE列下的所有日期都相同。这将有助于只读取前1行或前2行以提取值并将其分配给变量。因为我需要将“AS_OF_DATE”值与当前日期进行比较,并根据成功/失败返回退出0或1。@oraclebharadwaj-我已将答案更新为只读取前2行。我面临脚本问题。header变量是完美的,但是data变量。它从行中间拾取数据,前导数据被截断。@oraclebharadwaj如果OP没有提供必要的信息,总是很困难的。您应该编辑您的问题,以包含更真实的数据样本。dbenham陈述了很多你没有回应的假设。看起来第三条不是真的。我们可以不提取文件中的所有记录。我们可以只提取文件中的前两条记录并检查此逻辑吗?AS_of_DATE列下的所有日期都是相同的。这将有助于只读取前1行或前2行以提取值并将其分配给变量。因为我需要将“AS_OF_DATE”值与当前日期进行比较,并根据成功/失败返回退出0或1。@oraclebharadwaj-我已将答案更新为只读取前2行。我面临脚本问题。header变量是完美的,但是data变量。它从行中间拾取数据,前导数据被截断。@oraclebharadwaj如果OP没有提供必要的信息,总是很困难的。您应该编辑您的问题,以包含更真实的数据样本。dbenham陈述了很多你没有回应的假设。看起来第三个不是真的。AS_OF_DATE列下的所有日期都是相同的。这将有助于只读取前1行或前2行以提取值并将其分配给变量。因为我需要将“按日期计算”值与当前日期进行比较,并根据成功/失败返回退出0或1。按日期计算列下的所有日期都相同。这将有助于只读取前1行或前2行,以提取值并将其分配给变量。因为我需要将AS_OF_DATE值与当前日期进行比较,并根据成功/失败返回退出0或1。