Я хочу прочитать определенную строку из текстового файла и вывести строку в другой текстовый файл.
Мой текстовый файл (Sample.txt) выглядит следующим образом:
@{AssemblyName=Microsoft.Office.Excel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1y08bdf1111e0105c; Path=C:\Tes\app1\cc\application; ProjectPath=C:\test\application\Application.vbproj; Name=Microsoft.Office.Excel}
@{AssemblyName=System; Path=C:\Tes\app2\ser\application; ProjectPath=C:\test\application2\Application.vbproj; Name=System}
Я не хочу включать ничего, кроме имени сборки... т. е. сценарий не должен учитывать версию, культуру и т. д.
Текстовый файл содержит много такой информации о сборке. Я хотел бы прочитать только AssemblyName и записать его в другой текстовый файл в powerell. Например: output.txt должен содержать только Microsoft.Office.Excel.
Кроме того, я хочу исключить несколько имен сборок, начинающихся с определенной строки, например, System. Как я могу это сделать?
Я пробовал ниже, но ничего не пишет в output.txt.
$workdir = "C:\Test"
$Txt = "$workdir\Sample.txt"
Function GetAsmName($rTxt)
{
Get-Content $Txt
$regex = '@{AssemblyName="(\w*?)"[,|;]'
$matches = (select-string -Path $Txt -Pattern $regex)
$matches | Select -Expandproperty Matches | Select @{n="Name";e={$_.Groups[1].Value}}
Set-Content -path $workdir\Output.txt -value $matches
}
Будем признательны за любую помощь.
Спасибо
'(?<=AssemblyName=)(?!system)([^;|,]+)'
06.11.2012