Чтобы следить за статьей, вы хотите убедиться в возможности PowerShell расширять переменные в строке, а затем использовать [ScriptBlock]::Create()
, которая берет строку для создания нового ScriptBlock. В настоящее время вы пытаетесь создать ScriptBlock в ScriptBlock, который не будет работать. Это должно выглядеть примерно так:
$exe = 'setup.exe'
# The below line should expand the variable as needed
[String]$cmd = "cmd /c 'C:\share\$exe'"
# The below line creates the script block to pass in Invoke-Command
[ScriptBlock]$sb = [ScriptBlock]::Create($cmd)
Invoke-Command -ComputerName $j -Credential $credentials -ScriptBlock $sb
Попробуйте это:
string s = "<xml><foo></foo></xml>";
XmlDocument xdoc = new XmlDocument();
xdoc.LoadXml(s);
xdoc.Save("myfilename.xml");
Дополнительным преимуществом является то, что загрузка не удастся, если ваш XML неверен.
Необходимо будет использовать раздел CDATA . Строго говоря, создайте XmlCDataSection
использование XmlDocument.CreateCDataSection
и предоставьте свою строку в качестве параметра.
Я знаю, что Вы сказали, что C#, но имеют Вас, попробовал VB.NET за литералы XML. Удивительный материал.
Public Class Program
Public Shared Sub Main()
Dim myKeyBoardStyle = "dvorak"
Dim myXML As XElement = <ROOT>
qwerty
<altKeyboard><%= myKeyBoardStyle.ToUpper() %></altKeyboard>
<SampleElement>adsf</SampleElement>
<SampleElement2>The text of the sample element2</SampleElement2>
</ROOT>
Console.WriteLine(myXML.ToString())
myXML.Save(".\fileFromXElement.xml")
End Sub
End Class
Уведомление аккуратный элемент, который вводит результат кода в в вывод:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
qwerty
<altKeyboard>DVORAK</altKeyboard><SampleElement>adsf</SampleElement><SampleElement2>The text of the sample element2</SampleElement2></ROOT>
надрез [удаленные мнения]