从PowerShell脚本执行CMD命令

时间:2018-10-03 22:54:18

标签: powershell windows-scripting

我已经看到许多类似的问题,但是它们都与从PS脚本(.ps1)执行ipconfig之类的CMD命令无关。

如果在PS控制台上键入这些命令,它们可以正常工作,但是一旦在脚本上却不能,则可以在下面看到示例:

PS C:\Users\TestQro> adb devices
List of devices attached

PS C:\Users\TestQro> adb devices | Select-String -Quiet List
True

返回True,因为Select-String在命令“ adb devices”的响应中找到单词“ List”,这是预期的行为。但是,如果我将相同的命令放到.ps1脚本文件中,则PS会在运行时回答:

PS C:\TesterInfo> ./TunnerApp.ps1

cmdlet Write-Output at command pipeline position 1
Supply values for the following parameters: InputObject[0]:

如何在脚本中键入普通的CMD命令? 为什么要等待脚本中的参数,但在控制台中却能正常工作呢?

2 个答案:

答案 0 :(得分:2)

根据那里的输出结果

PS C:\TesterInfo> ./TunnerApp.ps1

cmdlet Write-Output at command pipeline position 1
Supply values for the following parameters: InputObject[0]:

看起来您的PowerShell脚本中某处有Write-Output语句,没有任何输入。在某处寻找空的Write-Output语句

答案 1 :(得分:0)

您所说的 CMD命令实际上是WindowsSystem32文件夹(或其他PATH环境变量路径)中的可执行文件。这样,您可以像调用任何可执行文件一样使用 call运算符

来调用它们:
& "$Env:SystemRoot\System32\IPCONFIG.exe"

about_Operators