以下适用于单个文件:
$path = "C:\Users\ThompsonHo\Desktop\testing\F181RMR CAN.txt"
$word = ",,"
$replacement = ""
$text = get-content $path
$newText = $text -replace $word,$replacement
$newText > $path
我尝试让它处理多个文件但是失败了,如何用powershell替换多个文件?
$path = "C:\Users\ThompsonHo\Desktop\testing\F18*.txt"
$word = ",,"
$replacement = ""
$text = get-content $path
$newText = $text -replace $word,$replacement
$newText > $path
答案 0 :(得分:1)
您必须检索文件列表,然后遍历列表。
您可以使用Get-ChildItem
检索与模式匹配的文件(尽管在这种情况下Get-Item
也适用):
$files = Get-ChildItem "C:\Users\ThompsonHo\Desktop\testing\F18*.txt"
这会给你一个FileInfo
的数组。您可以使用foreach
迭代一个集合。
foreach ($file in $files) {
$file.FullName
}
此时 $file.FullName
将是文件的完整路径。
您对单个文件的现有工作解决方案应该很容易适应。
答案 1 :(得分:0)
$p="C:\temp"
$cs=Get-ChildItem -Path $p
foreach($c in $cs)
{
$t=Get-Content -Path $c.FullName -Raw
#$t -replace ",,",""|Out-File -FilePath $c.FullName -NoNewline
Set-Content -Path $c.FullName -Value ($t -replace ",,","") -NoNewline
}
答案 2 :(得分:0)
试试这个:
Get-ChildItem "c:\temp\F18*.txt" | %{$file=$_.FullName; (Get-Content $file).Replace(',,', ',') | Out-File $file }