如何定位文件并根据内容添加新行?

时间:2015-10-15 17:35:11

标签: powershell

我尝试运行下一个脚本失败:

1.在D:\下找到所有.properties文件 如果文件内容包含'iis',那么将两个单独的行附加到 文件。

2.找到c:\下的所有.prop2文件 如果文件内容包含'win88',则在文件中附加两行。

脚本:

$file1 = Get-ChildItem -Path D:\* -Filter *.properties -Recurse 
$file2 = GetChildItem -Path C:\* -Filter *.prop2 -Recurse
if ( $file1 -contains '*iis*') {Add-Content $file1 "'nServer1'nServer2"};
 if ( $file2 -contains '*win88*') {Add-Content $file2 "'nServer3'nServer4"};

1 个答案:

答案 0 :(得分:0)

Get-ChildItem可以返回多个文件。您需要遍历文件列表,获取其内容,然后检查它们是否包含您要查找的字符串。这是*.properties的简单解决方案。

$file1 = Get-ChildItem -Path D:\* -Filter *.properties -Recurse | % {
    $fileContents = Get-Content $_
    if ( $fileContents -contains '*iis*') {Add-Content $file1 "'nServer1'nServer2"};
}