使用 Windows 批处理文件过滤 CSV 文件

使用 Windows 批处理文件过滤 CSV 文件

我有一个包含 12 列的文件,其中用?

我需要导出第 12 列(NetBIOS 名称)并将整行附加到 CSV 文件。跳过第一行,即列描述。

从 SCCM 查询导出的 CSV 文件的前 4 行:

Name    SMS Assigned Sites  IP Addresses    IP Subnets  Operating System Name and Version   Resource Domain Or Workgroup    Last Logon User Domain  Last Logon User Name    SMS Unique Identifier   Resource ID Resource Type   Netbios Name    
F101-03123D "SIC"   "172.18.1.101"  "172.18.1.0"    Microsoft Windows NT Workstation 5.1    SI  SI  aalmo06 GUID:00003D0D-A754-47ED-B2EA-D29D1C4A4124   3509    System  A202-E1210A 
F112-02478D "SIC"   "169.254.222.155"; "172.18.2.21"    "169.254.0.0"; "172.18.2.0" Microsoft Windows NT Workstation 5.1    SI  SI  aafebep GUID:A4768DE7-E3CA-42B3-90A4-3502B2F04364   3510    System  A234-A1720000B
B567-03565D "SIC"   "172.21.212.6"  "172.21.212.0"  Microsoft Windows NT Workstation 5.1    SI  SI  aabibru GUID:F81E25B7-0074-457A-9E98-1A611208D28B   5438    System  C856-153AE22    

结果/输出 CSV 文件:

A202-E1210A
A234-A1720000B
C856-153AE22
etc...

我有类似的东西:

FOR /F "tokens=12 delims= skip=1 " %%G IN (allsystems.csv) DO @echo %%G

但是我应该在这里使用什么分隔符?

答案1

如果我理解正确的话,问题在于文件使用TAB作为分隔符。Windows 命令提示符用于TAB自动完成,这意味着它通常不能作为常规字符输入。但是,您可以使用以下命令关闭该行为:

cmd /f:off

用这个而不是仅仅用 来启动命令提示符cmd,现在您就可以使用Tab键来输入字符。

或者,将脚本放入批处理文件中。任何文本编辑器都允许您输入字符TAB,并且当您执行批处理文件时,命令提示符将毫无问题地将其解释为字符。

答案2

称呼CSV修复来自批处理文件,专为此类任务而设计。

相关内容