У меня есть собственная среда PowerShell, и у меня есть следующий скрипт
$one = 10
$two = "The value of one is $one"
Когда я запускаю этот фрагмент в PowerShell ISE, результат такой, как я ожидаю.
The value of one is 10
Когда я запускаю это в своей собственной среде PowerShell, строка не реализуется, и результат не меняется. Кто-нибудь знает, как вызвать стандартное поведение?
С уважением, Зимми
полный пример
var script = $@"
$one = 10
$two = 'The value is $one'
";
var ps = PowerShell.Create();
ps.AddScript(script);
ps.Invoke();
var valueoftwo = ps.Runspace.SessionStateProxy.GetVariable("two");
Assert.Equal("The value is 10", valueoftwo);
// here the value is 'The value is $one'
$two = 'The value is $one'
внутри строки С#. Строки с одинарными кавычками не выполняют интерполяцию переменных в PowerShell. Вам нужно будет вставить двойные кавычки в строку C# с обратной косой чертой$two = \"the value is $one\"
- stackoverflow.com/a/3458058/478656 - person TessellatingHeckler   schedule 09.08.2018