我已经将MAC地址作为字符串存储在变量中:
$macaddress= "1234567"
我正在尝试将命令的输出存储在另一个变量中:
$testing = { arp -a; | select-string $macaddress }
Write-Host $testing
如果命令在PowerShell中执行,则看不到
$macaddress
的值。它在屏幕中显示为“$ macaddress”,而不是其值“1234567”。请帮助我正确设置
$macaddress
的值。 最佳答案
问题不在于如何定义变量$macaddress
,而是在于如何尝试捕获命令输出。
删除封闭的{ ... }
和;
:
$testing = arp -a | select-string $macaddress
至于您尝试了什么:
{ ... }
创建一个脚本块,该脚本块是一段源代码(通常来说),供以后执行(例如,使用.
或&
运算符)。如果您将脚本块传递给
Write-Host
-whose use you should generally avoid,它会转换为字符串,并且字符串表示形式就是{
和}
之间的脚本块的文字内容-这就是为什么看到$macaddress
在您的脚本中出现(未扩展)输出。;
终止命令,仅当在一行上放置多个命令时才需要。尽管管道由多个子命令组成,但管道仍被视为单个命令。不要尝试在管道中使用
;
-会破坏它(实际上,甚至您的script-block-creating命令也会破坏)。关于powershell - 选择字符串在PowerShell中不接受变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43724584/