我正在导入CSV。我有一个名为'Date of Birth‘的列,日期格式为'yyyy/MM/dd’和'yyyy-MM-dd‘。
我只想拉取日期为后一种格式(yyyy-MM-dd)的记录。
我下面的代码可以工作,但是当使用$SearchFor = "/“时,它没有拉回$SearchFor = "-”的任何记录,并且返回了所有记录。
Import-CSV C:\Test\TestFile.csv | Where-Object { $_."Date Of Birth" -Notlike $SearchFor } | ForEach-Object {有没有人知道发生了什么,为什么我只能得到我正在寻找的记录?
发布于 2019-12-10 08:00:37
无论您的查询是什么,您都应该得到所有记录:
$_."Date Of Birth" -Notlike $SearchFor其中,$SearchFor是"-"或"/"
您需要添加通配符并使用"*-*"和"*/*",否则-like操作符的行为类似于-eq操作符。
更好的是,使用正则表达式来匹配看起来像是板上钉钉的格式:
用短划线匹配日期:$SearchFor = "^\d{4}-\d{2}-\d{2}$"
$_."Date Of Birth" -match $SearchFor要匹配带斜杠的日期,只需稍微编辑正则表达式查询字符串:$SearchFor = "^\d{4}/\d{2}/\d{2}$"
https://stackoverflow.com/questions/59250742
复制相似问题