我是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
任何帮助都将不胜感激。
答案 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"