PowerShell(Windows)用adbコマンド

Windows初心者です'。Windows用のadbとfastbootファイル(platform-tools)をインストールし、adbに万遍なくアクセスできるように【パス変数にフォルダを追加】1してみました。

調べてみると、Windowsは徐々にPowerShellにシフトしており(これは良いことだ)、いずれはレガシーなCMDを省略することになる(と思う)。そのため、メニューにも「PowerShellのウィンドウをここで開く」というオプションが表示されています。レジストリハックで、quot;Open Command Prompt Here"を追加し、quot;Open PowerShell window here"を削除する方法も知っていますが、PowerShellがCMDよりずっと高度であることを考えると、これはあまりやりたくはないことですね。

さて、platform-toolsをインストールしたフォルダでPowerShellを開き、adbコマンドを実行すると、thisit's successful と表示されます。

.\adb devices  
.\adb.exe devices  

しかし、別の場所でPowerShellを開いてコマンドを実行すると、not successfulとなります。 パス変数にadbフォルダを追加しても、なぜそのような挙動になるのでしょうか。また、どうすれば汎用的にコマンドを成功させることができるのでしょうか?

そんな中、PowerShell ADB & Fastboot GUIを提供するアプリケーション、PoshADBを見つけました(共有したかっただけなんですけどね)。

Please note: adb devices は cmd で問題なく動作します、普遍的に。

--

以下の回答から導き出された結論は、

  • adbファイルがPATHにない場合。

    • これらはadbがインストールされているフォルダと同じ場所で動作します:

      • フルパスで呼び出す
        • `.ⅳⅳⅳⅳ
        • .ⅳadb.exe devices.
    • これは普遍的に機能します:

      • フルパスで呼び出す
  • adbファイルが自分のPATHにある場合。

    • これらはadbがインストールされているフォルダと同じ場所で動作します:

      • フルパスで呼び出す
        • `.ⅳⅳⅳⅳ
        • .ⅳadb.exe devices.
      • adbデバイス`。
    • これらは普遍的に機能します:

      • adbデバイス`。
      • フルパスで呼び出す

今後の参考までに- (簡潔に言うとPATHにない場合は、フルパスを入力しないと動作しません。PATHにある場合は、adb devicesと入力するか、adbのフルパスを入力すればよいです。)

質問へのコメント (6)
ソリューション

.˶‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾;;;;;;;;;;;;˵(˵)でコマンド実行すると、PowerShellに対して「このディレクトリだけを見てね」という指示を出しているので、ドットは昔のコマンドプロセッサのように&quot=このフォルダを意味しています。実行しようとしているものがカレントフォルダになければ、たとえそれが PATH 上にあったとしても、それは失敗することになります。なお、"ドットソース"という用語は、PowerShellスクリプトを自分ではなく現在のスコープで実行することを指し、カレントディレクトリからコマンドを実行するのとは異なる。

ただし、PowerShellは再起動するまでPATHや環境変数の変更を認識しないので注意しましょう。環境変数を調整し、新しいPowerShellを開いた後は、カレントディレクトリに関係なく、実行したいプログラムを特定するには、単にadbだけで十分です。

解説 (4)