我尝试循环通过路径中的40个CSV文件,并删除标题中不是数字、字母和空格值的任何字符。
下面是我尝试过的代码,这是文件中的头文件,但也替换了文件中的所有数据,我只能看到没有特殊字符的头文件,我只是power shell的初学者,不知道如何继续下去,非常感谢任何帮助。
$path = "C:\AllFiles\"
Get-ChildItem -path $path -Filter *.csv |
Foreach-Object {
$content = Get-Content $_.FullName
$content[0] = $content[0] -replace '[^0-9a-zA-Z, ]'|Set-Content $_.FullName
}发布于 2020-02-12 23:34:44
-replace运算符需要两个值,第一个值是您要查找的值,第二个值是要用来替换第一个值的值。
示例:"John Jones" -replace "Jones","Smith"
这将用创建新字符串"John Smith“的文本"Smith”替换"Jones“
在您的示例中,不是创建要保留的正则表达式,而是创建要替换的正则表达式。
示例:
$path = "C:\AllFiles\"
Get-ChildItem -path $path -Filter *.csv |
Foreach-Object {
$content = Get-Content -Path $path
$content[0] = $content[0] -replace '[regex for special chars]',""
Set-Content $path -value $content -force
}这会将整个字符串替换为您已将regex值替换为"“的字符串
https://stackoverflow.com/questions/60191348
复制相似问题