1

私は PowerShell とスクリプト全般に非常に慣れていませんが、ディレクトリを検索し、特定の拡張子を持つすべてのファイル (特定のディレクトリ内のファイルを除く) を検索し、それらの各ファイルをテキスト文字列で編集するスクリプトを作成する必要があります。

現在、次を使用して、無視したいディレクトリを除いて、必要な場所にあるすべてのファイルのリストを生成できます。

Get-ChildItem -path C:\path\location\TEST\* -recurse -Exclude ROB | Where-Object { -not $_.PSIsContainer} | where {$_ -notmatch 'ROB'} | ?{$_.name -match “^*.cpp|h$”}

今私が苦労しているのは、add-contentコマンドレットを使用して、上記のクエリに一致する各ファイルの末尾に文字列を追加することです。私は次のことを試みましたが、うまくいきません:

Add-Content {Get-ChildItem -path C:\path\location\TEST\* -recurse -Exclude ROB | Where-Object { -not $_.PSIsContainer} | where {$_ -notmatch 'ROB'} | ?{$_.name -match “^*.cpp|h$”}} "TextString"

これは私が得るエラーです:

    + CategoryInfo : MetadataError: (:) [Add-Content]、ParameterBindingException
    + FullyQualifiedErrorId : ScriptBlockArgumentNoInput,Microsoft.PowerShell.Commands.AddContentCommand

どんな助けでも大歓迎です。

4

1 に答える 1

0

ここでの答えは、get-childitemコマンドを変数として定義し、次に変数だけadd-contentをビオラの場所として定義することのようです。

だからそれは次のようになります

$Query = Get-ChildItem -path C:\path\location\TEST\* -recurse -Exclude ROB | Where-Object { -not $_.PSIsContainer} | where {$_ -notmatch 'ROB'} | ?{$_.name -match “^*.cpp|h$”}
add-content -path $Query "Text"
于 2012-09-05T16:15:53.977 に答える