web-dev-qa-db-ja.com

コマンドラインアプリ '内部または外部コマンドとして認識されません。'

数年前、私はいくつかのコンソールコマンドラインアプリを作成しましたが、当時は問題なく動作していました。それらをwindow/system32ディレクトリに配置し、コンソールからシステムのどこからでもプロンプトを使用できるようにします(Windows XP当時))。

現在、Windows 7 64ビットを使用していますが、これは機能しなくなりました。小さなコンソールアプリをsystem32syswow64、Windowsのc:ドライブのルートまで配置しようとしましたが、Windowsから同じ応答が返されます "'check' is not Recognition内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして。」

だが!プログラムと同じディレクトリ内にいる場合は、意図したとおりに機能します。 32ビット/ 64ビットのアプリの問題またはOSの内部セキュリティの問題があると思います。

誰かが私をここで正しい方向に向けることができますか? 「ProgramFiles(x86)」にディレクトリを作成し、その新しいディレクトリをPATH環境に追加する必要がありますか?


追記:これは私が作成したプログラムです。バッチファイルではありません。コンソールウィンドウを表示しているときにプログラムと同じディレクトリにいる場合、プログラムは正常に機能します。

4

PATHの環境変数には、Windowsディレクトリもシステムディレクトリも含まれていませんでした。 3つのパスすべてをPATH変数に追加したところ、すべてが意図したとおりに機能するようになりました。

アイデア、提案、質問で返信してくれたすべての人に感謝します。

1

ただし、最も簡単な方法は、WindowsのPATH環境変数を利用することです。これにより、100%同じ機能が保証され、Windowsディレクトリに何も配置する必要がありません。同じことに向けられた他の質問があります、 このスレッド の答えはあなたをそれに耐えさせるべきです。

1
Tobias Plutat

.EXEは環境変数のPATHEXTから削除される可能性があります。

この場合は、.EXEPATHEXTに追加してください。

1
fermat4214

プログラムを32ビットのコマンドプロンプトから実行しているのか、64ビットのコマンドプロンプトから実行しているのかを言っているのではありません。 32ビットのものはSysWOW64ディレクトリ(System32として表示されます)を検索し、64ビットのものはSystem32ディレクトリを検索します。 (これはコメントであるはずですが、コメントするのに十分な担当者がまだいません。)

明確でない場合、64ビットのものはC:\ Windows\System32\cmd.exeであり、32ビットのものはC:\ Windows\SysWOW64\cmd.exeです。開いているプロンプトのビット数がわからない場合は、「set」コマンドを実行して、「ProgramFiles」環境変数の値を確認してください。 64ビットのプロンプトではC:\ Program Filesとして表示され、32ビットのプロンプトではC:\ Program Files(x86)として表示されます。

0
Chuck Heatherly

「内部コマンドまたは外部コマンドとして認識されない」という部分については、次の記事をご覧ください。

pingを取得できません 'pingは内部コマンドまたは外部コマンドとして認識されません'

0
Khattab

1.> make AndroidフォルダーをCドライブ(C:\ Android)に2.> debug.keystoreをAndroidフォルダー(C:\ Android\debug)に貼り付けます.keystore)

keytool -exportcert -alias androiddebugkey -keystore "C:\ Android\debug.keystore" | "C:\ OpenSSL-Win32\bin\openssl.exe" sha1 -binary | "C:\ OpenSSL-Win32\bin\openssl.exe" base64

0
user285819