数年前、私はいくつかのコンソールコマンドラインアプリを作成しましたが、当時は問題なく動作していました。それらをwindow/system32ディレクトリに配置し、コンソールからシステムのどこからでもプロンプトを使用できるようにします(Windows XP当時))。
現在、Windows 7 64ビットを使用していますが、これは機能しなくなりました。小さなコンソールアプリをsystem32
、syswow64
、Windowsのc:ドライブのルートまで配置しようとしましたが、Windowsから同じ応答が返されます "'check' is not Recognition内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして。」
だが!プログラムと同じディレクトリ内にいる場合は、意図したとおりに機能します。 32ビット/ 64ビットのアプリの問題またはOSの内部セキュリティの問題があると思います。
誰かが私をここで正しい方向に向けることができますか? 「ProgramFiles(x86)」にディレクトリを作成し、その新しいディレクトリをPATH環境に追加する必要がありますか?
追記:これは私が作成したプログラムです。バッチファイルではありません。コンソールウィンドウを表示しているときにプログラムと同じディレクトリにいる場合、プログラムは正常に機能します。
PATHの環境変数には、Windowsディレクトリもシステムディレクトリも含まれていませんでした。 3つのパスすべてをPATH変数に追加したところ、すべてが意図したとおりに機能するようになりました。
アイデア、提案、質問で返信してくれたすべての人に感謝します。
ただし、最も簡単な方法は、WindowsのPATH環境変数を利用することです。これにより、100%同じ機能が保証され、Windowsディレクトリに何も配置する必要がありません。同じことに向けられた他の質問があります、 このスレッド の答えはあなたをそれに耐えさせるべきです。
.EXE
は環境変数のPATHEXT
から削除される可能性があります。
この場合は、.EXE
をPATHEXT
に追加してください。
プログラムを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)として表示されます。
「内部コマンドまたは外部コマンドとして認識されない」という部分については、次の記事をご覧ください。
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