polecenie adb dla PowerShell (Windows)


1

Jestem nowym użytkownikiem systemu Windows. Zainstalowałem pliki adb i fastboot (narzędzia platformowe) dla systemu Windows i dodano folder w zmiennej ścieżki abym mógł uzyskać dostęp do adb uniwersalnie.

Zrobiłem kilka badań i odkryłem, że Windows powoli przesuwa się do PowerShell (co jest dobre) iw końcu (chyba) pominie starsze CMD. Więc nawet Menu [Shift + prawy przycisk myszy] pokazuje opcję „Otwórz okno PowerShell”. Przeczytałem kilka artykułów i zapoznałem się z hackami rejestru, aby dodać „Open Command Prompt Here” i usunąć „Open PowerShell tutaj”, ale to nie jest coś, co chciałbym zrobić, biorąc pod uwagę, że PowerShell jest znacznie bardziej zaawansowany niż CMD.

Teraz, kiedy otwieram PowerShell w tym samym folderze, w którym zainstalowałem narzędzia platformowe i uruchamiam polecenie adb, otrzymuję to i to się udaje .

.\adb devices  
.\adb.exe devices  

Ale kiedy otwieram PowerShell gdzie indziej i uruchamiam polecenie, jest to nieudany . Dlaczego tak się dzieje, nawet gdy dodałem folder adb do zmiennej ścieżki? A jak mogę z powodzeniem uruchomić komendę?

Podczas wyszukiwania znalazłem aplikację, która zapewnia PowerShell ADB i Fastboot GUI - PoshADB (chciałem się podzielić).

Proszę zanotować że adb devices działa dobrze w cmd, powszechnie.

-

Wniosek, który wyciągnąłem z odpowiedzi poniżej:

  • Gdy pliki adb NIE są na moim PATH

    • Działają one w tym samym folderze, w którym zainstalowano adb:

      • Zadzwoń po pełnej ścieżce
        • .\adb devices
        • .\adb.exe devices
    • Działa to powszechnie:

      • Zadzwoń po pełnej ścieżce
  • Gdy pliki adb są na moim PATH

    • Działają one w tym samym folderze, w którym zainstalowano adb:

      • Zadzwoń po pełnej ścieżce
        • .\adb devices
        • .\adb.exe devices
      • adb devices
    • Działają one powszechnie:

      • adb devices
      • Zadzwoń po pełnej ścieżce

Dla mojego przyszłego odniesienia- (Zwięzłe: jeśli nie jest na twoim PATH następnie musisz wprowadzić pełną ścieżkę, aby mogła działać. A jeśli jest na twoim PATH wtedy możesz po prostu wpisać adb deviceslub wspomnij pełną ścieżkę adb)


2
nie używaj „dot sourcing” tylko „adb.exe”, jeśli znajduje się na Twojej ścieżce lub używa pełnych ścieżek. „dot sourcing” jest używany w bieżącym katalogu, aby zapobiec niepożądanemu wykonaniu PS, którego możesz lub nie musisz modyfikować, aby składnia była akceptowana przez powershell
Jaqueline Vanek

1
PPS używa „$ Env: Path”, aby sprawdzić zmienną ścieżki z PowerShell
Jaqueline Vanek

Mały dodatek OT: [...] registry-hacks to add 'Open Command Prompt Here' and remove 'Open PowerShell Window here' nie są konieczne. Przejdź do nowego panelu Ustawienia - & gt; Personalizacja - & gt; Pasek zadań - & gt; odznacz „Zamień wiersz polecenia przy pomocy Windows PowerShell [...]”.
flolilolilo

Jak wspomniała @Jaqueline, mogę to potwierdzić adb.exe devices działa dobrze w tym samym folderze, w którym znajdują się narzędzia platformy. Ale ponieważ dodałem ten folder do zmiennej ścieżki (może to również potwierdzić, używając $Env:Path ), to samo polecenie adb.exe devices działa powszechnie także. To bardzo dobrze odpowiada na moje pytanie. Dziękuję Ci! Nie jestem jednak w stanie zrozumieć ” „dot sourcing” jest używany w bieżącym katalogu aby zapobiec niepożądanemu wykonaniu ". Tak, mogę również potwierdzić, że w tym samym folderze, .\adb.exe devices i .\adb devices działa, ale nie powszechnie.
swingcake

Również @flo Chciałbym poprawić podane informacje. Ta opcja, do której się odnosisz Go to the new Settings panel -> Personalization -> Taskbar -> uncheck "Replace Command Prompt with Windows PowerShell [...]", zastępuje je tylko po kliknięciu prawym przyciskiem myszy przycisku Start lub naciśnięciu klawisza Windows + X . W moim oryginalnym poście mówię o menu kontekstowe W każdym razie, dzięki za komentarz! :)
swingcake

Odpowiedzi:


1

Kiedy używasz .\ aby uruchomić polecenie, mówisz PowerShellowi, aby spojrzał tylko w bieżącym katalogu - kropka oznacza „ten folder”, tak jak w starym procesorze poleceń. Jeśli rzecz, którą próbujesz uruchomić, nie znajduje się w bieżącym folderze, nawet jeśli znajduje się w folderze PATHto się nie powiedzie. Zwróć uwagę, że termin „dot-sourcing” odnosi się do wykonywania skryptów PowerShell w bieżącym zakresie, a nie do własnego, co różni się od uruchamiania polecenia z bieżącego katalogu.

Możesz wpisać nazwę programu bez .\ gdziekolwiek go uruchomić, jeśli jest na twoim PATH. Zauważ jednak, że PowerShell nie zobaczy zmian w PATH lub dowolna zmienna środowiskowa do momentu ponownego uruchomienia. Po dostosowaniu zmiennej środowiskowej i otwarciu nowego PowerShell po prostu adb wystarczy, aby zidentyfikować program, który chcesz uruchomić, bez względu na bieżący katalog.


„dopóki go nie zrestartujesz”, więc to zrozumiałeś. teraz, jak ponownie uruchomić elegancką sesję?
Jaqueline Vanek

@JaquelineVanek Zamykanie i ponowne otwieranie okna PowerShell powinno być wystarczające, ale cykl wylogowania / logowania zdecydowanie odświeżyłby wszystkie zmienne środowiskowe.
Ben N

@BenN Rozważ, że pliki adb nie znajdują się na moim PATH. Teraz jak uruchomić / wykonać / Lampa błyskowa plik, którego nie ma w tym samym folderze. Jak ja nawigować do tego pliku z folderu adb?
swingcake

@unixf Możesz użyć cd aby zmienić bieżący katalog (podobnie jak w starym procesorze poleceń), lub możesz wprowadzić względny (np. subfolder\program.ext ) lub pełna ścieżka (np. C:\somefolder\subfolder\program.ext ) aby uruchomić program, który znajduje się gdzie indziej niż bieżący katalog.
Ben N
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.