我想删除[公司]:IT测试列。但没有成功。
输入CSV文件:
[Company]:IT Test,[CompanyXYZ]:IT Test12,[CompanyXY]:IT Test222
data11,tst11,user11
data23,tst44,user44
我期望的输出:
[CompanyXYZ]:IT Test12,[CompanyXY]:IT Test222
tst11,user11
tst44,user44
脚本:
Import-Csv 'C:\input.csv' -Delimiter "," | Select * -ExcludeProperty '[Company]:IT Test' |
Export-Csv "c:\output.csv" -Delimiter "," -Encoding UTF8 -notypeinfo
1条答案
按热度按时间91zkwejq1#
通过查看
Select-Object
Cmdlet的源代码,ExcludeProperty
的值在执行匹配之前首先被编译为通配符模式。请参阅此处源代码的相关部分。根据官方的about_Wildcards文档,powershell支持以下通配符集。
| 通配符|项目名称|范例|符合|无匹配项|
| - -|- -|- -|- -|- -|
| * |匹配零个或多个字符a*| aA、ag|苹果公司|香蕉|
| ?|匹配该位置的一个字符|?n| an,in,on|已运行|
| [内容提要]|匹配字符范围|看|书、做饭、看|采取了|
| [内容提要]|匹配特定字符|看|烹饪书|钩住|
|
*| 匹配任何字符作为文字(非通配符)|12英尺 *4英寸|12个 *4个|小行星一千二百三十四| 由于
[ ]是通配符模式语法的一部分,因此需要使用'对其进行转义,以便与
[]`进行字面匹配