Хотя я не уверен, мотивации для того, что вы пытаетесь сделать это звучит, как вы пытаетесь сохранить команду $em_result
, так что вы можете работать, когда вы хотите. Таким образом, вы не сохраняете результат во времени, но каждый раз, когда вы его называете, результат будет с этого момента.
Как Tony Hinkle ответил, что вам нужно сохранить команду в виде строки. Однако есть больше, чем просто кавычки. Переменная трубопровода $_
также вступила в игру. Поскольку это простое here-string, это сделает так, что вам не нужно беспокоиться о том, чтобы что-либо избежать.
$em_result = @'
gc 'C:\Users\mtmachadost\Desktop\Test\logError.txt' | ?{$_ -match 'cajica11'} | %{($_ -split "\s+")[3]} | Measure -Sum | Select -Exp Sum
'@
Теперь вы могли бы назвать эту строку и получить результаты
Write-Host "`$em_result = $(Invoke-Expression $em_result)"
Я предполагаю, что вы пытаетесь использовать пару, как одиночную обратную кавычку и избежать котировок пары, которые заставили меня думать, что это то, что вы хотели. Backtick выйдет только из следующего символа. Invoke-Expression
выполнит строку, которую мы передаем ей как код.
f Вы просто запустите команду 'gc C: \ Users \ mtmachadost \ Desktop \ Test \ logError.txt | ? {$ _ -match 'cajica11'} | % {($ _ -split "\ s +") [3]} | Измерение -Sum | Выберите -Exp Sum'' делает что-нибудь? Если нет, то $ em_result ничего не будет иметь, и вам нужно изменить вопрос, чтобы отразить, что вам нужна помощь с командой –
да, результатом является число, например 58, но мне нужно сохранить комманду строки, в varible и напечатать результат переменной через em_result em_result = 58 –