我的PowerShell CSV工具有一个奇怪的问题.我试着写一个小的支票,过滤掉某些名字和字符.这些名称/字符在这样的文本文件中:
XXX nana YYY ... DDD
我做的检查是这样的:
$reader = [System.IO.File]::OpenText($fc_file.Text)
try {
for() {
$line = $reader.ReadLine()
if ($line -eq $null) { break }
# process the line
Import-Csv $tempfile -Delimiter $delimeter -Encoding $char |
where {$_.$fc_suchfeld -notmatch $line} |
Export-Csv $tempstorage -Delimiter $delimeter -Encoding $char -NoTypeInfo
Run Code Online (Sandbox Code Playgroud)
它工作得很好,直到3点的线.此时几乎所有行都被删除.我怎么解决这个问题?
该-match运营商确实正则表达式匹配..是正则表达式中的元字符,匹配除换行符之外的任何字符.因此,正则表达式...匹配具有至少3个字符的任何行.如果你想使用来自$fc_file文字字符串匹配的行,你需要转义它们:
... | where {$_.$fc_suchfeld -notmatch [regex]::Escape($line)} | ...
Run Code Online (Sandbox Code Playgroud)
或做一个通配符匹配:
... | where {$_.$fc_suchfeld -notlike "*$line*"} | ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |