使用DOS批处理文件在CSV或文本文件中查找数据

时间:2013-11-13 19:55:54

标签: batch-file csv dos

我正在寻找一种从CSV查找一行数据信息的快捷方式(或者可以以任何格式保存)。需要提示用户输入确切的名称,返回将是其他详细信息。下面的示例表。

Name | Mfr | Model | Number | Asset | Location | Unit | Install

AOM69-WC-2d HP  PROLIANT DL360 G7   USEX13S5NW  90901X3 F99 85  X2547d5

Roswell-Con-21x HP  PROLIANT DL360P GEN8    USE2O35QP0  8223173 X22 63  V2355863

我的想法:

Enter the Name you are looking for:> AOM69-WC-2d

返回以下数据:

AOM69-WC-2d has the following information: HP   PROLIANT DL360 G7   USEX13S5NW  90901X3 F99 85  X2547d5

1 个答案:

答案 0 :(得分:0)

Windows命令shell不是图灵完整的编程语言,如果没有用其他语言编写帮助程序命令,你会发现很难做任何非常复杂的事情 - 在这种情况下你也可以使用其他语言 - 或使用第三方用于执行某些任务的实用程序。

Windows批处理文件的缺点很大程度上由Windows PowerShell解决,但对于这个应用程序来说,这两者都不是最好的选择。

然而,你可以几乎做你想做的事情,如下所示:

@echo off
set /p name=Enter the name you are looking for:>
findstr /c:"%name%" datafile.csv

要获得您建议的精确输出,需要在findstr输出上执行一些字符串处理,并且在Win32中不支持。您可以将findstr的输出管道传输到类似sed的内容,可以找到其中的Windows版本here。但PowerShell直接支持字符串处理。