私はどうやら行って、奇妙な方法で私のシステムを台無しにしました。 Windows7のcmd
プロンプトは、拡張子を明示的に入力しない限り、実行可能ファイルまたはバッチファイルを認識しなくなりました。
C:\Users\Current> xcopy /?
'xcopy' is not recognized as an internal or external command,
operable program or batch file.
これは、.exe
拡張子で修飾することで修正されます。
C:\Users\Current> xcopy.exe /?
< ... all of the help for xcopy shows below, as expected ... >
Xcopyが機能しなくなったときにパスを壊すために何かをしたと思いましたが、Windowsに通常含まれている最小限のセットに戻すと、修正されませんでした。私のパスは現在次のとおりです。
C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\KC\Scripts
そこにある唯一の非標準的なものは、ユーザーパスで指定されているC:\KC\Scripts
です。ひもが奇形だとは思わない。これは最近、WindowsRubyInstallerを介してRubyをインストールし、パスを自動的に更新するように選択した後に発生しました。パスから何かを削除しましたが、上記に投稿したものを削除しましたが、エラーが解決しません。
Windowsが.exeまたは.batファイルであることを明示的に指定せずにCLIでプログラムとバッチファイルの認識を停止する理由を知っている人はいますか?
Windowsの考えられる理由cmd
シェルエラー
'foo' is not recognized as an internal or external command,
operable program or batch file
シェルコマンドの実行には、PATH
とPATHEXT
の2つの環境変数が密接に関係しています。
PATH
環境変数は、Windows検索パス、つまり、コマンドシェルが実行可能ファイルを見つけようとしたときに検索されるディレクトリのリストを定義します。ファイル。PATHEXT
環境変数は、実行可能ファイルを検索するときにWindowsによってチェックされるファイル拡張子のリストを定義します。また、任意のファイル拡張子を実行可能と見なすことができます。ファイル拡張子がアプリケーションに関連付けられている場合、シェルは適切なアプリケーションを実行します。ここでは関連付けられていますはがデフォルトのシェルアクションとして定義されているのと同じことを表します特定のファイル拡張子のWindowsレジストリ内。
これは、このすべてのトピックの良い紹介です: Windows NTコマンドシェル
これは、Accessフロントエンドアプリをユーザーのローカルマシンにコピーするために使用するバッチファイルで発生しました。彼らの環境は、Windows 7&8と32-64ビットマシンが混在しています。
Xcopy.exeがSystem32フォルダーとSysWOW64フォルダーの両方にあることに気付き、競合があるかどうか疑問に思いました。
Xcopy.exeをバッチファイルが存在するフォルダーにコピーしましたが、現在は機能しているようです。