Команда adb для PowerShell (Windows)
Я 'новичок в Windows. Я установил файлы adb и fastboot (platform-tools) для Windows и добавил папку в переменную path, чтобы иметь универсальный доступ к adb.
Я провел некоторое исследование и обнаружил, что Windows медленно переходит на PowerShell (что хорошо) и (я полагаю) в конечном итоге откажется от устаревшего CMD. Поэтому даже в меню [[Shift+Правая кнопка мыши]2 появилась опция "Открыть окно PowerShell здесь". Я читал некоторые статьи и знаком с хаками реестра, чтобы добавить "Open Command Prompt Here" и удалить "Open PowerShell window here", но это не то, что я хотел бы сделать, учитывая, что PowerShell намного более продвинут, чем CMD.
Теперь, когда я открываю PowerShell в той же папке, где я'установил platform-tools, и запускаю команду adb, я получаю this и it's successful.
.\adb devices
.\adb.exe devices
Но когда я открываю PowerShell в другом месте и запускаю команду, она'оказывается not successful. Почему поведение такое, даже когда я добавил папку 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)
Когда вы используете
.\
для запуска команды, вы'говорите PowerShell искать ее только в текущем каталоге - точка означает "эту папку", как и в старом командном процессоре. Если то, что вы пытаетесь запустить, не находится в текущей папке, даже если оно есть вPATH
, это приведет к неудаче. Обратите внимание, что термин "dot-sourcing" относится к выполнению сценариев PowerShell в текущей области видимости вместо их собственной, что отличается от запуска команды из текущего каталога.Вы можете набрать имя программы без
.\
в любом месте, чтобы запустить ее, если она находится в вашемPATH
. Обратите внимание, что PowerShell не увидит изменений вPATH
или любой переменной окружения, пока вы не перезапустите его. После того как вы настроили переменную окружения и открыли новый PowerShell, достаточно простоadb
, чтобы определить программу, которую вы хотите запустить, независимо от вашего текущего каталога.