替换文件中的第一行文本

时间:2010-09-14 12:01:36

标签: powershell

我想将文件从一个位置复制到另一个位置,并用字符串替换第一行文本。我几乎完成了脚本,但并不完全......(见下文)

# -- copy the ASCX file to the control templates
$fileName = "LandingUserControl.ascx"
$source = "D:\TfsProjects\LandingPage\" + $fileName
$dest = "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\CONTROLTEMPLATES\LandingPage"
#copy-item $source $dest -Force

# -- Replace first line with assembly name
$destf = $dest + "\" + $fileName
$destfTemp = $destf + ".temp"
Get-Content $destf | select -skip 1 | "<text to add>" + $_) | Set-Content $destfTemp

2 个答案:

答案 0 :(得分:8)

不是单行,但它有效(用路径替换test1.txt和test2.txt):

.{
    "<text to add>"
    Get-Content test1.txt | Select-Object -Skip 1
} |
Set-Content test2.txt

答案 1 :(得分:6)

在“不止一种皮肤养猫方式”的情况下,你可以用Out-File完成同样的事情,如果这是你周四的偏好。写作是为了更好地理解流动与单线冷凝。

$x = Get-Content $source_file
$x[0] = "stuff you want to put on first line"
$x | Out-File $dest_file

这使用了Get-Content创建一个数组的事实,每一行都是该数组的一个元素。