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)

1 ответ1

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .