Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从PowerShell脚本执行CMD命令_Powershell_Windows Scripting - Fatal编程技术网

从PowerShell脚本执行CMD命令

从PowerShell脚本执行CMD命令,powershell,windows-scripting,Powershell,Windows Scripting,我见过许多类似的问题,但没有一个与从PS脚本(.ps1)执行CMD命令相关,例如ipconfig 如果您在PS控制台上键入这些命令,它们可以正常工作,但在脚本上则不行,下面您可以看到一个示例: PS C:\Users\TestQro> adb devices List of devices attached PS C:\Users\TestQro> adb devices | Select-String -Quiet List True 我应该如何在脚本中键入普通CMD命令? 为什么它正在等待

我见过许多类似的问题,但没有一个与从PS脚本(.ps1)执行CMD命令相关,例如
ipconfig

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

PS C:\Users\TestQro> adb devices List of devices attached PS C:\Users\TestQro> adb devices | Select-String -Quiet List True 我应该如何在脚本中键入普通CMD命令?
为什么它正在等待脚本上的参数,但在控制台中它工作正常?

您所指的CMD命令实际上是
窗口
系统32
文件夹(或其他一些
路径
环境变量路径)中的可执行文件。因此,您可以像调用任何可执行文件一样使用调用运算符调用它们:



您所指的CMD命令实际上是
Windows
System32
文件夹(或其他一些
PATH
环境变量路径)中的可执行文件。因此,您可以像调用任何可执行文件一样使用调用运算符调用它们:



基于你在那里的输出

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
语句

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
语句

以获取有关不工作代码的帮助:显示不工作的代码。您好,感谢您的帮助。代码只有这一行:“adb设备|选择字符串-安静列表”,然后请尝试从CMD窗口(
PowerShell.exe-NoExit-NoProfile
)启动一个干净的PowerShell实例,并从那里运行脚本。您仍然会收到相同的提示吗?对于不起作用的代码的帮助:显示不起作用的代码。您好,谢谢您的帮助。代码只有这一行:“adb设备|选择字符串-安静列表”,然后请尝试从CMD窗口(
PowerShell.exe-NoExit-NoProfile
)启动一个干净的PowerShell实例,并从那里运行脚本。您仍然收到相同的提示吗?只要文件名或路径中没有空格,外部命令可以作为裸字调用,而无需使用call运算符
ipconfig
和ipconfig
以及
和“ipconfig”
都应该这样做。只要文件名或路径中没有空格,外部命令可以作为裸字调用,而无需使用调用运算符
ipconfig
&ipconfig
、以及
和“ipconfig”
都应该执行相同的操作。您好,感谢您的帮助,但脚本中的唯一一行与您在控制台中看到的相同,因此我不知道为什么脚本中需要参数,而不是键入时需要参数:adb设备|选择字符串-安静List@JorgeAlbertoDiaz我懂了,也许可以尝试将adb设备管道输出到一个文件,然后获取该文件的输出并搜索您的值<代码>adb设备>C:\temp\adb.txt$devices=获取内容C:\temp\adb.txtHi,感谢您的帮助,但脚本中的唯一一行与您在控制台中看到的相同,因此我不知道为什么脚本中需要参数,而不是键入时需要参数:adb设备|选择字符串-安静List@JorgeAlbertoDiaz我懂了,也许可以尝试将adb设备管道输出到一个文件,然后获取该文件的输出并搜索您的值<代码>adb设备>C:\temp\adb.txt$devices=获取内容C:\temp\adb.txt
PS C:\TesterInfo> ./TunnerApp.ps1

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