web-dev-qa-db-ja.com

拡張子を指定せずにコマンドを認識しないWindows7 CLI

私はどうやら行って、奇妙な方法で私のシステムを台無しにしました。 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でプログラムとバッチファイルの認識を停止する理由を知っている人はいますか?

2
KChaloux

Windowsの考えられる理由cmdシェルエラー

'foo' is not recognized as an internal or external command,
operable program or batch file

シェルコマンドの実行には、PATHPATHEXTの2つの環境変数が密接に関係しています。

  • PATH環境変数は、Windows検索パス、つまり、コマンドシェルが実行可能ファイルを見つけようとしたときに検索されるディレクトリのリストを定義します。ファイル。
  • PATHEXT環境変数は、実行可能ファイルを検索するときにWindowsによってチェックされるファイル拡張子のリストを定義します。

また、任意のファイル拡張子を実行可能と見なすことができます。ファイル拡張子がアプリケーションに関連付けられている場合、シェルは適切なアプリケーションを実行します。ここでは関連付けられていますがデフォルトのシェルアクションとして定義されているのと同じことを表します特定のファイル拡張子のWindowsレジストリ内。

これは、このすべてのトピックの良い紹介です: Windows NTコマンドシェル

1
JosefZ

これは、Accessフロントエンドアプリをユーザーのローカルマシンにコピーするために使用するバッチファイルで発生しました。彼らの環境は、Windows 7&8と32-64ビットマシンが混在しています。

Xcopy.exeがSystem32フォルダーとSysWOW64フォルダーの両方にあることに気付き、競合があるかどうか疑問に思いました。

Xcopy.exeをバッチファイルが存在するフォルダーにコピーしましたが、現在は機能しているようです。

0
Eileen Murphy