我已经看到许多类似的问题,但是它们都与从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命令? 为什么要等待脚本中的参数,但在控制台中却能正常工作呢?
答案 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命令实际上是Windows
或System32
文件夹(或其他PATH
环境变量路径)中的可执行文件。这样,您可以像调用任何可执行文件一样使用 call运算符
& "$Env:SystemRoot\System32\IPCONFIG.exe"