我有一个包含 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修复来自批处理文件,专为此类任务而设计。