在生成的文件列表上执行添加内容

时间:2012-09-04 21:50:06

标签: powershell

我是PowerShell和脚本的新手,但是我需要创建一个脚本来搜索目录,查找具有特定扩展名的所有文件(不包括某些目录中的文件),然后用一个目录编辑每个文件。文字字符串。

目前,我能够生成所需位置中所有文件的列表,使用以下内容排除我要忽略的目录:

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

现在我正在努力的是使用add-content cmdlet将字符串添加到与上面的查询匹配的每个文件的底部。我尝试过以下操作,但它不起作用:

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

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分: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"