如何从文件夹中的所有文本文件中删除单词?

时间:2013-01-21 15:46:04

标签: powershell powershell-v2.0 powershell-v3.0 powershell-ise

我有这样的代码:

$txt = get-content c:\work\test\01.i

$txt[0] = $txt[0] -replace '-'

$txt[$txt.length - 1 ] = $txt[$txt.length - 1 ] -replace '-'

$txt | set-content c:\work\test\01.i

它只是从文本文件的第一行和最后一行中删除-,但我需要对目录树中包含超过5k文本文件的所有文本文件执行此操作。我应该如何修改此代码?

所有文本文件名都是随机的。

我需要在powershell中执行此操作。

它是一个目录树,在c:\ work \ test下会有更多的lvl子文件夹,然后包含所有文本文件。

请帮忙。感谢

1 个答案:

答案 0 :(得分:3)

通过文件扩展名或某种模式获取所有文件并循环遍历它们。让我们说它是.i扩展名的所有文件。尝试:

Get-ChildItem -Path "c:\work\test" -Filter *.i -Recurse | where { !$_.PSIsContainer } | % { 
    $txt = Get-Content $_.FullName; 
    $txt[0] = $txt[0] -replace '-'; 
    $txt[$txt.length - 1 ] = $txt[$txt.length - 1 ] -replace '-';
    $txt | Set-Content $_.FullName
    }