Перейти к содержимому

команда adb для PowerShell (Windows)

1

Я новичок в Windows. Я установил файлы adb и fastboot (platform-tools) для Windows и добавил папку в переменную path, чтобы я мог получить доступ к adb повсеместно.

Я провел некоторое исследование и обнаружил, что Windows постепенно переходит на PowerShell (что хорошо) и (я полагаю) в конечном итоге пропустит устаревшую CMD. Так что даже в меню [Shift + правый щелчок] отображается опция «Открыть окно PowerShell здесь». Я прочитал несколько статей и знаком со взломами реестра, чтобы добавить «Открыть командную строку здесь» и удалить «Открыть окно PowerShell здесь», но я бы не хотел этого делать, учитывая, что PowerShell намного более продвинутый, чем CMD.

Теперь, когда я открываю PowerShell в той же папке, где я установил инструменты платформы и запускаю команду adb, я получаю это, и это успешно .

.\adb devices  .\adb.exe devices  

Но когда я открываю PowerShell в другом месте и запускаю команду, это не удается . Почему так даже при добавлении папки adb в переменную path? И как я могу выполнить команду успешно универсально?

Во время поиска я нашел приложение, которое предоставляет 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)

22 456 просмотров
swingcake спросил 8 лет назад
S 14

1 ответ

1
Принятый ответ

Когда вы используете .\команду для запуска, вы указываете PowerShell искать ее только в текущем каталоге - точка означает «эту папку», как в старом командном процессоре. Если то, что вы пытаетесь запустить, отсутствует в текущей папке, даже если оно находится в папке, это PATHне удастся. Обратите внимание, что термин «точечный источник» относится к выполнению сценариев PowerShell в текущей области вместо их собственных, что отличается от выполнения команды из текущего каталога.

Вы можете ввести имя программы, .\чтобы она нигде не запускалась, если она есть у вас PATH. Обратите внимание, что PowerShell не увидит изменений PATHили каких-либо переменных среды, пока вы не перезапустите его. После того, как вы настроили переменную среды и открыли новую оболочку PowerShell, adbдостаточно просто определить программу, которую вы хотите запустить, независимо от вашего текущего каталога.

«пока не перезапустишь», так и понял. Теперь, как перезапустить шикарный сеанс?

Jaqueline Vanek · 8 лет назад · 0

@JaquelineVanek Закрытие и повторное открытие окна PowerShell должно быть достаточным, но цикл выхода из системы / входа в систему определенно обновит все переменные среды.

Ben N · 8 лет назад · 0

@BenN Учтите, что файлы adb отсутствуют в моем PATH. Теперь, как мне запустить / выполнить / flash файл, которого нет в той же папке. Как мне навигаться к этому файлу из папки adb?

swingcake · 8 лет назад · 0

@unixf Вы можете использовать cd, чтобы изменить текущий каталог (во многом как в старом командном процессоре), или вы можете ввести относительный (например, subfolder \ program.ext) или полный путь (например, C: \ somefolder) \ subfolder \ program.ext) для запуска программы, которая находится где-то еще, кроме текущего каталога.

Ben N · 8 лет назад · 0
Ben N ответил 8 лет назад
B 28 901