PowerShell:使用禁止字符列表筛选文件名列表

PowerShell:使用禁止字符列表筛选文件名列表,powershell,Powershell,我有一个CSV,其中包含我使用Get ChildItem构建的文件名列表。 现在,我想获取该列表并创建一个包含某些字符(“,|,”,的文件名的项目列表,使用正则表达式(正则表达式的缩写)match而不是类似于的比较运算符。以下内容将尝试匹配您列出的任何字符,以及问号和双引号。前面的反斜杠是转义字符,以确保它是文字匹配,每个字符之间的管道表示“或”,因此它查找以下任何字符:人物 $csv = Import-Csv .\FILES.CSV $csvexport = $null $csvExpor

我有一个CSV,其中包含我使用Get ChildItem构建的文件名列表。 现在,我想获取该列表并创建一个包含某些字符(“,|,”,的文件名的项目列表,使用正则表达式(正则表达式的缩写)match而不是类似于的比较运算符。以下内容将尝试匹配您列出的任何字符,以及问号和双引号。前面的反斜杠是转义字符,以确保它是文字匹配,每个字符之间的管道表示“或”,因此它查找以下任何字符:人物

$csv = Import-Csv .\FILES.CSV

$csvexport = $null

$csvExport = $csv | select name,length |Where-Object {$_.name -match "\`"|\'|\%|\||\#|\:|\<|\>|\/|\\|\?"}

$csvexport | export-csv .\filesupdated.csv -NoTypeInformation -NoClobber
$csv=导入csv.\FILES.csv
$csvexport=$null
$csvExport=$csv |选择名称、长度|其中对象{$\.name-匹配“\`”\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\?”}
$csvexport |导出csv。\files updated.csv-NoTypeInformation-NoClobber
有些字符可能不需要转义,但转义一个字符(据我所知)是无害的,即使它不需要它,除非您试图将它用于特殊字符的用途,而我们不是。使用RegEx(正则表达式的缩写)match而不是类似于的比较运算符。以下内容将尝试匹配您列出的任何字符,以及问号和双引号。前面的反斜杠是转义字符,以确保它是文字匹配,每个字符之间的管道表示“或”,因此它查找以下任何字符:人物

$csv = Import-Csv .\FILES.CSV

$csvexport = $null

$csvExport = $csv | select name,length |Where-Object {$_.name -match "\`"|\'|\%|\||\#|\:|\<|\>|\/|\\|\?"}

$csvexport | export-csv .\filesupdated.csv -NoTypeInformation -NoClobber
$csv=导入csv.\FILES.csv
$csvexport=$null
$csvExport=$csv |选择名称、长度|其中对象{$\.name-匹配“\`”\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\?”}
$csvexport |导出csv。\files updated.csv-NoTypeInformation-NoClobber

有些角色可能不需要转义,但没有伤害(据我所知)在转义字符时,即使字符不需要转义,除非您试图将其用于特殊字符的用途,而我们不需要转义字符。

请编辑您的问题,使代码具有正确的格式。@Bill\u Stewart:完成!没有意识到哈希符号会使其变为粗体。谢谢请编辑您的问题,使代码具有正确的格式。@Bill\u Stewart:完成!没有意识到哈希符号会使它变粗。谢谢