Variables 在Powershell上打印变量
我需要在Powershell上打印一行Com,并通过一个变量调用$em_result,例如,em_result=20,谢谢Variables 在Powershell上打印变量,variables,powershell,printing,write-host,Variables,Powershell,Printing,Write Host,我需要在Powershell上打印一行Com,并通过一个变量调用$em_result,例如,em_result=20,谢谢 $em_result = ´gc C:\Users\mtmachadost\Desktop\Test\logError.txt | ?{$_ -match 'cajica11'} | %{($_ -split "\s+")[3]} | Measure -Sum | Select -Exp Sum'´ Write-Host"$em_result" 分配它时,需要指定它是字
$em_result = ´gc C:\Users\mtmachadost\Desktop\Test\logError.txt | ?{$_ -match 'cajica11'} | %{($_ -split "\s+")[3]} | Measure -Sum | Select -Exp Sum'´
Write-Host"$em_result"
分配它时,需要指定它是字符串,否则Powershell将尝试执行它。您还需要使用双引号对其进行分隔,并使用反勾号对命令中的双引号和美元符号进行转义,以便它们被视为字符串的一部分,而不是结束字符串的分隔符
$em_result = [string]"gc C:\Users\mtmachadost\Desktop\Test\logError.txt | ?{`$_ -match 'cajica11'} | %{(`$_ -split `"\s+`")[3]} | Measure -Sum | Select -Exp Sum'"
分配它时,需要指定它是字符串,否则Powershell将尝试执行它。您还需要使用双引号对其进行分隔,并使用反勾号对命令中的双引号和美元符号进行转义,以便它们被视为字符串的一部分,而不是结束字符串的分隔符
$em_result = [string]"gc C:\Users\mtmachadost\Desktop\Test\logError.txt | ?{`$_ -match 'cajica11'} | %{(`$_ -split `"\s+`")[3]} | Measure -Sum | Select -Exp Sum'"
分配它时,需要指定它是字符串,否则Powershell将尝试执行它。您还需要使用双引号对其进行分隔,并使用反勾号对命令中的双引号和美元符号进行转义,以便它们被视为字符串的一部分,而不是结束字符串的分隔符
$em_result = [string]"gc C:\Users\mtmachadost\Desktop\Test\logError.txt | ?{`$_ -match 'cajica11'} | %{(`$_ -split `"\s+`")[3]} | Measure -Sum | Select -Exp Sum'"
分配它时,需要指定它是字符串,否则Powershell将尝试执行它。您还需要使用双引号对其进行分隔,并使用反勾号对命令中的双引号和美元符号进行转义,以便它们被视为字符串的一部分,而不是结束字符串的分隔符
$em_result = [string]"gc C:\Users\mtmachadost\Desktop\Test\logError.txt | ?{`$_ -match 'cajica11'} | %{(`$_ -split `"\s+`")[3]} | Measure -Sum | Select -Exp Sum'"
虽然我不确定您试图完成的目标的动机,但听起来您似乎在试图保存命令
$em_result
,以便可以在需要时运行。这样,您就不会保存时间点结果,而是每次调用它时,结果都将从该时间开始
就像您需要将命令另存为字符串一样。然而,要逃避的不仅仅是引用。管道变量$\uuz
也将发挥作用。就目前情况而言,一个简单的解决方案可以让你不必担心逃避任何事情
$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对和escape引号对,这让我觉得这就是你想要的。Backtick将仅转义后面的一个字符<代码>调用表达式将执行作为代码传递的字符串 虽然我不确定您试图完成任务的动机,但听起来您似乎在试图保存命令
$em\u result
,以便在需要时运行。这样,您就不会保存时间点结果,而是每次调用它时,结果都将从该时间开始
就像您需要将命令另存为字符串一样。然而,要逃避的不仅仅是引用。管道变量$\uuz
也将发挥作用。就目前情况而言,一个简单的解决方案可以让你不必担心逃避任何事情
$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对和escape引号对,这让我觉得这就是你想要的。Backtick将仅转义后面的一个字符<代码>调用表达式将执行作为代码传递的字符串 虽然我不确定您试图完成任务的动机,但听起来您似乎在试图保存命令
$em\u result
,以便在需要时运行。这样,您就不会保存时间点结果,而是每次调用它时,结果都将从该时间开始
就像您需要将命令另存为字符串一样。然而,要逃避的不仅仅是引用。管道变量$\uuz
也将发挥作用。就目前情况而言,一个简单的解决方案可以让你不必担心逃避任何事情
$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对和escape引号对,这让我觉得这就是你想要的。Backtick将仅转义后面的一个字符<代码>调用表达式将执行作为代码传递的字符串 虽然我不确定您试图完成任务的动机,但听起来您似乎在试图保存命令
$em\u result
,以便在需要时运行。这样,您就不会保存时间点结果,而是每次调用它时,结果都将从该时间开始
就像您需要将命令另存为字符串一样。然而,要逃避的不仅仅是引用。管道变量$\uuz
也将发挥作用。就目前情况而言,一个简单的解决方案可以让你不必担心逃避任何事情
$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对和escape引号对,这让我觉得这就是你想要的。Backtick将仅转义后面的一个字符<代码>调用表达式将执行作为代码传递的字符串 如果要将命令行保存到变量,我建议将其保存为
ScriptBlock
,而不是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 = $(&$em_result)"
这样你就:
&
或
)调用它ScriptBlock
链接到其文件和行,因此您可以在其中设置断点如果要将命令行保存到变量,我建议将其保存为
ScriptBlock
,而不是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 = $(&$em_result)"
这样你就:
&
或
)调用它