我正在尝试编写代码... :) 因此我最近安装了 anaconda 并通过 Jupiter 笔记本开始进行一些 python 练习。今天我决定回到基础并在 CMD Prompt(Windows 8.1)中练习一些东西。不幸的是,之前成功运行的许多命令都给我“...未被识别为内部或外部命令可操作程序或批处理文件”的结果。诸如 pwd、cd~ 之类的命令。我弄乱了操作系统的变量吗?由于了解甚少(太少),我卸载了 Anaconda...无济于事。有人能给我提供一些想法吗?谢谢
答案1
概述
不幸的是,许多之前成功运行的命令都给出了结果
... is not recognized as an internal or external command operable program or batch file
。
您似乎遇到问题的命令都是 *Nix 特定的 shell 命令的变体,这些命令通常在 Windows 上不可用。
有一些本机的“交叉”命令(例如,cd
没有特殊的“主”目录语法~
),但其他命令根本无法使用(例如pwd
)。
推荐
解决这个问题的方法是安装这些命令/实用程序的 Windows 端口。其中一个项目是操作系统但也有其他类似的项目。根据您的命令示例,我建议下载单独的GNUWin32 CoreUtils 包。
安装后,将您的 GNUWIn32bin
目录添加到 Windows 路径,以便从命令行使用附带的实用程序。然后您应该可以使用 egpwd
和许多其他类似的基本命令。如果您需要更多实用程序,您也可以下载这些附加软件包。
请注意,此建议有意跳过了诸如(相对)较新的 Windows Subsystem for Linux、Cygwin、Git For Windows 等内容。
GNUWin32 注意事项
GNUWin32 的优势
该项目移植了大量公用设施,尤其是与其他一些类似项目相比。
GNUWin32 端口直接在命令行上运行,无需特殊“界面”(其他实现并不总是如此)。这些端口可以放置在安装目录中,并像任何普通程序一样添加到您的路径中(如上所述)。
如果您需要 GNUWin32 提供的所有内容,它为所有 400 多个端口(几百 MB)提供了“批量”安装程序,或者您可以单独安装软件包(如上所述)。
GNUWin32 注意事项
一些移植的实用程序可能不具备与原始 *Nix 版本完全相同的功能。这是由于 Windows 和 *Nix 风格操作系统之间的根本差异造成的。
并非所有实用程序都能完美运行。有时这可能是由于错误,或者 Windows 和 *Nix 风格的操作系统之间存在根本的差异。不过,据传闻,这些问题不太可能广泛存在或严重。
并非所有命令形式/语法都受支持。例如,
cd~
仍然无法工作,例如 GNUWin32 版本find
可能对 Windows 上可以使用的参数/形式有更严格的要求。但同样,据传闻,这种情况似乎并不普遍,也不会严重干扰大多数正常使用。可能会发生命名冲突。一个例子是
sort
。已经有一个 Windowssort
实用程序,它具有与 GNUWin32 端口不同的功能集sort
。这可以通过重命名给定的 GNUWin32 来克服.exe
,但需要注意这一点,因为可能存在许多重复的命令名称。您可以使用where some-command
来查看 Windows 中命令/实用程序的位置。返回的第一个条目是将在命令行中调用的内容。GNUWin32 可能不提供给定实用程序的最新端口。如果您能找到其他端口,您可能希望考虑使用那些端口。
请注意,一次下载所有软件包的安装程序有时也会比相应的单个软件包链接具有更多给定实用程序的更新版本。