适用于PowerShell的adb命令(Windows)


1

我是Windows的新手。我为Windows安装了adb和fastboot文件(平台工具),并在路径变量中添加了该文件夹,以便我可以普遍访问adb。

我做了一些研究,发现Windows正在慢慢转向PowerShell(这很好),并且(我猜)最终会省略传统的CMD。因此,即使[Shift +右键单击]菜单也会显示“在此打开PowerShell窗口”选项。我已经阅读了一些文章并熟悉注册表黑客添加“在这里打开命令提示符”并删除“在这里打开PowerShell窗口”,但这不是我想要做的事情,因为PowerShell比CMD更先进。

现在,当我在安装了platform-tools的同一个文件夹中打开PowerShell并运行adb命令时,我得到了这个并且它成功了

.\adb devices  
.\adb.exe devices  

但是当我在其他地方打开PowerShell并运行命令时,它并不成功为什么即使我将adb文件夹添加到路径变量中,行为也是如此?我怎样才能成功地普遍运行命令?

在我的搜索过程中,我找到了一个提供PowerShell ADB和Fastboot GUI的应用程序--PoshADB(只是想分享)。

请注意的是adb devices工作在CMD就好了,普遍。

-

我从以下答案中得出结论:

  • 当adb文件不在我身上时 PATH

    • 这些工作在安装adb的同一文件夹中:

      • 通过完整路径呼叫
        • .\adb devices
        • .\adb.exe devices
    • 这普遍适用:

      • 通过完整路径呼叫
  • 当adb文件打开时我的 PATH

    • 这些工作在安装adb的同一文件夹中:

      • 通过完整路径呼叫
        • .\adb devices
        • .\adb.exe devices
      • adb devices
    • 这些作品普遍适用:

      • adb devices
      • 通过完整路径呼叫

对于我将来的参考 - (简明地说:如果它不在您的PATH身上,那么您必须输入它的完整路径才能工作。如果它在您的PATH身上adb devices,那么您只需输入或提及adb的完整路径)


2
如果它位于您的路径中或使用完整路径,请不要仅使用“dot sourcing”“adb.exe devices”。“dot sourcing”用于当前目录,以防止不必要的执行PS你可能需要或不需要修改你的命令,以便powershell接受语法
Jaqueline Vanek,

1
PPS使用“$ Env:Path”来检查你的路径变量来自powershell
Jaqueline Vanek

小OT补充:[...] registry-hacks to add 'Open Command Prompt Here' and remove 'Open PowerShell Window here'没有必要。转到新的“设置”面板 - >“个性化” - >“任务栏” - >取消选中“使用Windows PowerShell替换命令提示符[...]”。
flolilo

正如@Jaqueline所提到的,我可以adb.exe devices在与平台工具相同的文件夹中确认工作正常。但是因为我已经将该文件夹添加到路径变量(也可以使用它确认$Env:Path),所以同样的命令也adb.exe devices 可以普遍使用。这很好地回答了我的问题。谢谢!但是,我无法理解当前目录中使用“点源” 来防止不必要的执行 “。是的,我也可以确认在同一个文件夹中,.\adb.exe devices并且.\adb devices有效,但不是普遍的。
swingcake

另外@flo我想更正你提供的信息。您所指的那个选项Go to the new Settings panel -> Personalization -> Taskbar -> uncheck "Replace Command Prompt with Windows PowerShell [...]",它只会在您右键单击开始按钮或按Windows键+ X时替换它们。我在原帖中谈到的是上下文菜单, 不管怎样,谢谢你的评论!:)
swingcake

Answers:


1

当您使用.\运行命令时,您告诉PowerShell 在当前目录中查找它 - 点表示“此文件夹”,就像在旧命令处理器中一样。如果您尝试运行的东西不在当前文件夹中,即使它在该文件夹中,PATH也会失败。请注意,术语“点源”是指在当前作用域中执行PowerShell脚本而不是它们自己的脚本,这与从当前目录运行命令不同。

你可以输入程序的名称而不.\管它在哪里运行它PATH。但请注意,PowerShell PATH在重新启动之前不会看到更改或任何环境变量。在调整环境变量并打开新的PowerShell之后,只需adb足以识别要运行的程序,无论您当前的目录是什么。


“直到你重新启动它”所以得到它。现在,如何重启一个豪华的会话?
杰奎琳·瓦内克

@JaquelineVanek关闭并重新打开PowerShell窗口应该足够了,但注销/登录周期肯定会刷新所有环境变量。
Ben N

@BenN考虑到adb文件不在我的身上PATH。现在如何运行/执行/ 刷新同一文件夹中不存在的文件。如何从adb文件夹导航到该文件?
swingcake

@unixf您可以使用cd更改当前目录(非常类似于旧命令处理器),或者您可以输入相对(例如subfolder\program.ext)或完全限定路径(例如C:\somefolder\subfolder\program.ext)来运行位于当前目录之外的其他位置的程序。
Ben N
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.