Как заменить значение в файле msha с помощью powershell? - PullRequest
2 голосов
/ 13 февраля 2012

У меня есть файл .msha. Ниже приводится содержание файла.

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Class References</title>
</head>
<body class="vendor-book">
    <div class="details">
        <span class="vendor">Pearson</span>
        <span class="locale">en-us</span>
        <span class="product">Class References</span>
        <span class="name">Class References</span>
    </div>
    <div class="package-list">
        <div class="package">
            <!-- NOTE: The "name" span value cannot contain any periods! -->
            <span class="name">ClassReference</span>
            <a class="current-link" href="ClassReference.mshc">ClassReference.mshc</a>
        </div>
    </div>
</body>
</html>

Я должен заменить следующий тег

<a class="current-link" href="ClassReference.mshc">ClassReference.mshc</a>

следующим образом

<a class="current-link" href="ClassReference.mshc.cab">ClassReference.mshc</a>

Как это сделать с помощью powershell?

Ответы [ 3 ]

2 голосов
/ 13 февраля 2012

Попробуйте это:

${C:\test\test.msha} =  ${C:\test\test.msha} -replace 'href="ClassReference\.mshc"','href="ClassReference.mshc.cab"'
1 голос
/ 13 февраля 2012

Самый простой способ - прочитать файл в формате XML и заменить тег. Следующее будет работать, только если теги всегда имеют одинаковый формат.

$xml = [xml](Get-Content C:\script\test.hta)
$xml.html.body.div[1].div.a.href = "ClassReference.mshc.cab"
$xml.html.body.div[1].div.a.href
$xml.InnerXml.ToString() | Out-File .\test.hta

НТН

0 голосов
/ 13 февраля 2012

Вы можете сделать это, прочитав содержимое файла в виде текста и выполнить простой поиск и замену , используя -replace строковый оператор в PowerShell:

(Get-Content MyFile.hta) -replace "href=`"ClassReference.mshc`"", "href=`"ClassReference.mshc.cab`"" `
    | Set-Content MyFile.hta
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...