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の下に、すべてのテキストファイルを含むより多くのレベルのサブフォルダがあります。

助けてください 。ありがとう

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 に答える