2

我有这样的代码:

$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 的子文件夹,然后包含所有文本文件。

请帮忙 。谢谢

4

1 回答 1

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
    }
于 2013-01-21T15:57:58.387 回答