我正在寻找一种从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
答案 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直接支持字符串处理。