заменить первую строку текста из файла - PullRequest
5 голосов
/ 14 сентября 2010

Я хотел бы скопировать файл из одного места в другое и заменить первую строку текста строкой.У меня почти закончен сценарий, но не совсем там .. (см. Ниже)

# -- 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 ]

9 голосов
/ 14 сентября 2010

Не однострочный, но он работает (замените test1.txt и test2.txt вашими путями):

.{
    "<text to add>"
    Get-Content test1.txt | Select-Object -Skip 1
} |
Set-Content test2.txt
6 голосов
/ 16 сентября 2010

В ключе «больше, чем один способ убить кошку» вы можете сделать то же самое с Out-File, если вы предпочитаете это по четвергам.Написано для лучшего понимания потока в сравнении с однострочным уплотнением.

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

При этом используется тот факт, что Get-Content создает массив, причем каждая строка является элементом этого массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...