Ошибка «команда adb не найдена, однако существует в текущем расположении» появляется в PowerShell при попытке запустить adb devices из папки platform-tools — файл adb.exe лежит рядом, но оболочка отказывается его выполнять. Причина не в повреждённом файле и не в отсутствии драйверов: PowerShell по соображениям безопасности не ищет исполняемые файлы в текущем каталоге, если путь не указан явно.
Это принципиальное отличие от классической командной строки cmd.exe, где программа из текущей папки запускается просто по имени. Ниже разберём, почему так происходит, и покажем несколько рабочих способов запустить ADB — от быстрого одноразового до постоянного через переменную PATH.
Почему PowerShell не видит adb.exe в текущей папке
PowerShell унаследовал модель безопасности Unix-оболочек: текущий каталог не входит в список мест, где система ищет команды. Это защищает от ситуации, когда вредоносный файл с именем популярной команды, случайно оказавшийся в папке, запускается вместо настоящей системной утилиты.
Поэтому оболочка честно сообщает: файл найден, но для запуска нужно указать его расположение явно. Сам текст подсказки обычно выглядит так:
Предложение 3 [Общие]: Команда adb не найдена, однако существует в текущем расположении.
По умолчанию оболочка Windows PowerShell не загружает команды из текущего расположения.
Если вы доверяете этой команде, введите вместо нее ".\adb".
Обратите внимание: PowerShell сам подсказывает решение в тексте ошибки. Проблема лишь в том, что многие инструкции по прошивке и отладке написаны под cmd или Linux-терминал, где префикс не требуется.
Быстрое решение: запуск через точку и обратный слэш
Самый простой способ — добавить перед именем команды префикс .\, который буквально означает «из текущей папки». Вместо adb devices введите:
.\adb devices
То же правило действует для любых подкоманд и для fastboot: .\adb reboot bootloader, .\fastboot devices и так далее. Префикс нужно ставить при каждом запуске, пока вы работаете в этой сессии PowerShell.
- 🔹
.\adb devices— проверка подключения устройства - 🔹
.\adb shell— вход в консоль смартфона - 🔹
.\fastboot flashing unlock— команды fastboot тоже требуют префикса - 🔹
.\adb install app.apk— установка APK из текущей папки
⚠️ Внимание: префикс.\работает только если вы действительно находитесь в папке с adb.exe. Проверить текущий каталог можно командойpwd, а список файлов —dir. Если adb.exe в выводе отсутствует, вы не в той папке.
Альтернатива: запуск через классическую командную строку
Если не хочется каждый раз печатать префикс, откройте в папке platform-tools классический cmd.exe вместо PowerShell. В нём команда adb devices работает без всяких дополнений, потому что cmd по умолчанию ищет исполняемые файлы в текущем каталоге.
Есть два удобных способа открыть cmd в нужной папке. Первый — ввести cmd в адресной строке Проводника, находясь внутри папки platform-tools, и нажать Enter. Второй — из уже открытого PowerShell просто выполнить команду cmd: запустится классическая оболочка в том же каталоге.
Постоянное решение: добавление platform-tools в PATH
Если вы работаете с ADB регулярно, удобнее один раз прописать путь к папке в системную переменную PATH. Тогда команда adb будет запускаться из любого каталога и в любой оболочке — без префиксов и переходов.
Общий порядок действий в Windows 10 и 11 выглядит так. Откройте свойства системы (можно через поиск по фразе «Изменение системных переменных среды»), нажмите «Переменные среды», найдите в списке пользовательских переменных Path и добавьте туда полный путь к папке platform-tools, например C:\platform-tools. После сохранения закройте и заново откройте окно терминала — переменные подхватываются только при старте новой сессии.
☑️ Настройка PATH для ADB
Проверка результата проста: в новом окне PowerShell или cmd выполните adb version из любой папки. Если выводится номер версии Android Debug Bridge — настройка завершена. Если снова «не найдена», перепроверьте, что путь добавлен без опечаток и указывает именно на папку, где лежит adb.exe, а не на сам файл.
Сравнение способов запуска ADB
Каждый из методов решает задачу, но подходит для разных сценариев. Сводная таблица поможет выбрать:
| Способ | Команда | Когда подходит | Недостаток |
|---|---|---|---|
| Префикс в PowerShell | .\adb devices | Разовые операции | Префикс при каждом запуске |
| Классический cmd | adb devices | Работа строго из папки platform-tools | Нужно открывать cmd в нужном каталоге |
| Полный путь к файлу | C:\platform-tools\adb.exe devices | Скрипты и редкие запуски | Длинная команда |
| PATH в системе | adb devices откуда угодно | Постоянная работа с ADB | Требует одноразовой настройки |
Если ADB запускается, но не видит устройство
После того как команда наконец выполняется, нередко выясняется, что adb devices показывает пустой список или статус unauthorized. Это уже другая группа причин, и она не связана с PowerShell.
На смартфоне должна быть включена отладка по USB: она находится в разделе «Для разработчиков», который активируется многократным нажатием на номер сборки в сведениях о телефоне. Точные названия пунктов зависят от оболочки производителя, поэтому при расхождениях сверяйтесь с документацией своей модели. При первом подключении на экране смартфона появится запрос на разрешение отладки — его нужно подтвердить.
- 🔌 Попробуйте другой USB-кабель: часть кабелей передаёт только питание без данных
- 🔌 Переключите кабель в другой порт, желательно напрямую в ПК, без хаба
- 🔌 Проверьте в Диспетчере устройств, нет ли неизвестного устройства — возможно, нужен USB-драйвер от производителя смартфона
- 🔌 Перезапустите сервер командой
.\adb kill-server, затем.\adb start-server
⚠️ Внимание: скачивайте platform-tools только с официального сайта Android Developers. Сторонние сборки ADB могут содержать устаревшую или модифицированную версию утилиты, что создаёт и проблемы совместимости, и риски безопасности.
Как проверить, что adb.exe настоящий
В папке platform-tools рядом с adb.exe должны лежать файлы AdbWinApi.dll и AdbWinUsbApi.dll — без них утилита обычно не запускается вовсе. Также можно открыть свойства файла и посмотреть цифровую подпись и версию продукта.
Та же ошибка в Linux и macOS
В терминалах Linux и macOS действует то же правило, что и в PowerShell: текущий каталог не входит в PATH. Поэтому из папки platform-tools команда тоже запускается с префиксом — только слэш прямой: ./adb devices.
Дополнительный нюанс Unix-систем — права на исполнение. Если файл скачан и распакован, но не запускается даже с префиксом, проверьте атрибуты командой ls -l adb и при необходимости добавьте право исполнения: chmod +x adb. Для постоянной работы путь к platform-tools добавляется в PATH через конфигурационный файл вашей оболочки (например, ~/.bashrc или ~/.zshrc) — синтаксис зависит от используемого shell.
⚠️ Внимание: команды fastboot flashing unlock и подобные, изменяющие состояние загрузчика, стирают данные на устройстве и могут повлиять на гарантию. Выполняйте их, только если понимаете последствия и следуете официальной инструкции для вашей модели.
Частые вопросы
Почему в инструкции написано просто adb, а у меня ошибка?
Большинство инструкций пишутся под cmd, Linux или под систему, где platform-tools уже добавлен в PATH. В PowerShell без настройки PATH требуется префикс .\ — это особенность оболочки, а не ошибка в инструкции.
Можно ли обойтись без добавления в PATH?
Да. Префикс .\ в PowerShell или работа через cmd полностью решают задачу. PATH нужен только для удобства при частом использовании из разных папок.
Я добавил путь в PATH, но adb всё равно не находится. Что проверить?
Убедитесь, что после сохранения переменной вы открыли новое окно терминала — старые сессии не видят изменений. Также проверьте, что в Path добавлена папка, содержащая adb.exe, без лишних пробелов и с правильными слэшами.
Работает ли префикс .\ в Windows Terminal?
Windows Terminal — это контейнер для оболочек. Если внутри открыт PowerShell, правила те же: нужен .\adb. Если открыта вкладка с cmd — префикс не требуется.
Ошибка появляется, хотя раньше всё работало. В чём дело?
Возможная причина — вы открыли терминал в другой папке, где adb.exe нет, либо переменная PATH была изменена или удалена после обновления системы. Проверьте текущий каталог командой pwd и наличие пути в переменных среды.