Android adb不在powershell中工作,但adb.exe可以工作
在Powershell中键入“Android adb不在powershell中工作,但adb.exe可以工作,android,powershell,adb,command-precedence,Android,Powershell,Adb,Command Precedence,在Powershell中键入“adb设备””时,它会返回一个提示,询问“如何打开此文件””。 但是,如果我使用“adb.exe设备”,它会工作并提供设备列表 因为我有很多脚本都是用adb而不是adb.exe编写的,有没有办法解决这个问题 在cmd中,键入adb设备也可以工作。但是脚本都是基于PS的。因此,在powershell中修复此问题将非常有帮助。谢谢。正如您所确认的,问题是位于C:\WINDOWS\system32目录中的一个名为adb(无文件扩展名)的无关的空文件 由于PATH环境变量(
adb设备”
”时,它会返回一个提示,询问“如何打开此文件”
”。
但是,如果我使用“adb.exe设备
”,它会工作并提供设备列表
因为我有很多脚本都是用adb而不是adb.exe编写的,有没有办法解决这个问题
在cmd中,键入adb设备也可以工作。但是脚本都是基于PS的。因此,在powershell中修复此问题将非常有帮助。谢谢。正如您所确认的,问题是位于
C:\WINDOWS\system32
目录中的一个名为adb
(无文件扩展名)的无关的空文件
由于PATH
环境变量(通常)在所需目标可执行文件(adb.exe
)所在的目录C:\Program Files(x86)\Intel\Platform\…
之前列出C:\WINDOWS\system32
,PowerShell试图执行C:\WINDOWS\system32\adb
,作为一个无扩展名的文件,它触发了您看到的GUI对话框
删除无关的C:\WINDOWS\system32\adb
文件解决了您的问题
Get命令-All adb
帮助发现了问题:它按优先级顺序列出了PowerShell已知的名为adb
的命令的所有形式,以及有关其类型和位置的信息;也就是说,首先列出的是实际调用的有效命令
请继续阅读背景信息
- 与所有Shell一样,如果命令仅使用(文件)名(而不是文件路径),PowerShell将按顺序在
环境变量(可作为PowerShell中的path
访问)中列出的目录中查找可执行文件$env:path
- 也就是说,如果您提交了一个命令名为adb的命令行,PowerShell在首先查找该名称的内部命令(别名、函数或cmdlet)后,会在
中列出的目录中查找基名称为adb的可执行文件,并调用它找到的第一个文件$env:PATH
- 在Windows上,可执行文件的文件扩展名列在环境变量(
)中;同样,这里列出的扩展也是按顺序考虑的。相反,在类Unix平台上,决定文件是否可执行的仅是文件模式(权限位)$env:PATHEXT
- 也就是说,如果您提交了一个命令名为adb的命令行,PowerShell在首先查找该名称的内部命令(别名、函数或cmdlet)后,会在
- 但是,与其他shell不同,PowerShell不仅仅在
中查找可执行文件,它会考虑与给定可执行文件的命令名完全匹配的任何文件,并实际上将此类文件传递给cmdlet,后者会触发对该文件的默认GUI shell操作,相当于在Windows上的文件资源管理器中双击文档$env:PATH
- 中讨论了这种有问题的行为,其中建议仅将真正的可执行文件视为命令
C:\WINDOWS\system32
目录中的一个名为adb
(无文件扩展名)的无关的空文件
由于PATH
环境变量(通常)在所需目标可执行文件(adb.exe
)所在的目录C:\Program Files(x86)\Intel\Platform\…
之前列出C:\WINDOWS\system32
,PowerShell试图执行C:\WINDOWS\system32\adb
,作为一个无扩展名的文件,它触发了您看到的GUI对话框
删除无关的C:\WINDOWS\system32\adb
文件解决了您的问题
Get命令-All adb
帮助发现了问题:它按优先级顺序列出了PowerShell已知的名为adb
的命令的所有形式,以及有关其类型和位置的信息;也就是说,首先列出的是实际调用的有效命令
请继续阅读背景信息
- 与所有Shell一样,如果命令仅使用(文件)名(而不是文件路径),PowerShell将按顺序在
环境变量(可作为PowerShell中的path
访问)中列出的目录中查找可执行文件$env:path
- 也就是说,如果您提交了一个命令名为adb的命令行,PowerShell在首先查找该名称的内部命令(别名、函数或cmdlet)后,会在
中列出的目录中查找基名称为adb的可执行文件,并调用它找到的第一个文件$env:PATH
- 在Windows上,可执行文件的文件扩展名列在环境变量(
)中;同样,这里列出的扩展也是按顺序考虑的。相反,在类Unix平台上,决定文件是否可执行的仅是文件模式(权限位)$env:PATHEXT
- 也就是说,如果您提交了一个命令名为adb的命令行,PowerShell在首先查找该名称的内部命令(别名、函数或cmdlet)后,会在
- 但是,与其他shell不同,PowerShell不仅仅在
中查找可执行文件,它会考虑与给定可执行文件的命令名完全匹配的任何文件,并实际上将此类文件传递给cmdlet,后者会触发对该文件的默认GUI shell操作,相当于在Windows上的文件资源管理器中双击文档$env:PATH
- 中讨论了这种有问题的行为,其中建议仅将真正的可执行文件视为命令