【发布时间】:2021-05-14 21:57:32
【问题描述】:
我需要帮助删除目录中所有文件内容中的双引号。我可以一次完成一个文件,而且速度太快,不确定如何在不影响性能的情况下对所有文件执行此操作。目录有600多个文件。
一个文件的 PS 脚本:
(gc C:\Temp\data.txt -En UTF8) | ForEach-Object {$_ -replace '"',''} | Out-File C:\Temp\data.txt -En UTF8
尝试使用以下代码处理文件夹中的所有文件。但是,它太慢了。
所有文件的 PS 脚本:
Get-ChildItem "C:\Temp" -Filter *.txt |
Foreach-Object {
$content = Get-Content $_.FullName
#filter and replace content to the original file
$content | % {$_ -replace '"', ''}
#save content to the same file name
$content | Out-File $File.BaseName -En UTF8
}
【问题讨论】:
-
Get-Content是known to be slow -
您的文件是文本文件还是 CSV 文件?如果是 CSV,那么简单地删除所有引号是危险的。阅读this
-
嗨@Theo,它们都是文本文件。
标签: powershell