Raz*_*orx 6 variables powershell output write-host
大家好,提前感谢您抽出宝贵的时间;
我遇到了一个小问题。
我正在运行一个命令并将其通过管道传输到一个变量中,以便我可以操纵输出。
$variable = some command
Run Code Online (Sandbox Code Playgroud)
这通常工作正常,但不会将发生的情况输出到屏幕上,这在大多数情况下都很好。然而,有时此命令需要一些用户输入(例如“是”或“否”或“跳过”),并且由于它实际上并未将任何内容通过管道传输到命令窗口,因此它只是挂在那里,而不是提示用户。如果你知道会发生什么,你可以点击 y 或 n 或 s,它就会正常进行。
是否有办法运行该命令,以便将输出通过管道传输到变量并显示在屏幕上?我已经尝试过:
($variable = some command)
Run Code Online (Sandbox Code Playgroud)
我也尝试过:
write-host ($variable = some command)
Run Code Online (Sandbox Code Playgroud)
但两者都不起作用。请注意,运行的命令不是本机 Windows 或 shell 命令,我不能连续运行它两次。
澄清一下(因为我可能不清楚)
我也尝试过:
$variable = some command : Out-host
Run Code Online (Sandbox Code Playgroud)
和
$variable = some command | out-default
Run Code Online (Sandbox Code Playgroud)
及其所有参数,但命令中的“提示”(写 y、n、s)没有显示。
能自动通过S也是可以的。
听起来你需要Tee-Object。例子:
some command | Tee-Object -Variable MyVariable
Run Code Online (Sandbox Code Playgroud)
这应该将命令中的所有内容传递到管道中,并将命令的所有输出存储在变量中$MyVariable。