管道读取主机不等待输入

时间:2014-04-07 19:54:22

标签: powershell

我是PowerShell的新手,想要做一些测试。例如,此命令成功等待用户输入:

powershell -command "Read-Host Test"

但是,如果我将“Read-Host Test”传递给PowerShell,则不会等待任何输入。以下是它在shell中的外观:

PS F:\> powershell -command "Read-Host Test"
Test: some input
some input
PS F:\> "Read-Host Test" | powershell -command -
Test:
PS F:\>

有人知道为什么两个命令都有区别吗?

2 个答案:

答案 0 :(得分:0)

试试这个

powershell -command "cat test.txt" | powershell -noexit -command -
  

执行指定的命令(和任何参数),就像它们一样    在Windows PowerShell命令提示符下键入,然后退出,除非    指定了NoExit。 Command的值可以是" - ",一个字符串。或者a    脚本块。

答案 1 :(得分:0)

嗯,cat是Get-Content的别名,所以我猜你在你运行的文件夹中有一个名为test.txt的文件。这是一种非常奇怪的做事方式,我不确定你希望做什么。

至于差异,我可以看到的主要区别在于,您正在直接运行命令,因此它将在与当前会话相同的命名空间中运行。对于另一个,看起来你正在尝试运行一个脚本,有点,并且不是点源,所以它将在受保护的命名空间中运行,这会给你一个不同的结果。