PowerShell将文本行添加到多个文件

时间:2012-06-22 19:33:56

标签: powershell

Powershell经历了3个小时......

场景:需要在多个文件夹和子文件夹中的多个ASPX文件的顶部添加一行代码

这可能吗?

我已经想出如何搜索文件,但添加那行代码是我遇到的问题。 这就是我所拥有的,这是行不通的

Get-ChildItem C:\domain_3 -recurse -include "*.aspx" |
Foreach-Object { 
    Add-Content -Path $targetFile -Value "<%@ Page Language="C#" Inherits="LandingPages.LandingPage" %>"; 
}

谢谢大家

3 个答案:

答案 0 :(得分:6)

$header=@"
"<%@ Page Language="C#" Inherits="LandingPages.LandingPage" %>
"@

Get-ChildItem C:\domain_3 -Recurse -Filter *.aspx | Foreach-Object { 
    $header`n" + (Get-Content $_.FullName | Out-String) | Set-Content -Path $_.FullName
}

答案 1 :(得分:0)

试试这个(我现在不能测试)

创建一个函数:

function Insert-Content ($file) {
BEGIN {
$content = Get-Content $file
}
PROCESS {
$_ | Set-Content $file
}
END {
$content | Add-Content $file
}
}

然后使用它:

(dir c:\domain_3 -r -filter *.txt ) | % { '<%@ Page Language="C#" Inherits="LandingPages.LandingPage" %>' | insert-content $_.fullname }

答案 2 :(得分:0)

这适用[不太确定编码部分]

$file="F:\Default2.aspx"
$content = Get-Content $file
$content = "<%@ Page Language=`"C#`" Inherits=`"LandingPages.LandingPage`" %>" + $content;
Set-Content $file $content