我最近从 Ubuntu 转到了 Windows 10。Windows 中有两个不同的终端:PowerShell 和命令提示符。它们之间的主要区别是什么?
答案1
CMD 起源于 Dos 时代。它具有简单的命令结构并且是一种逐行指令语言。
您发出命令,获得反馈,它最有用的是启动程序。为了做更复杂的事情,您通常需要使用专门执行此功能的程序。
cmd 确实带有许多命令,例如复制、移动,但它们仍然用于执行一些基本任务。
PowerShell 是一种更高级的语言,是命令提示符的扩展版本。它被创建为使用 .net 框架的 Linux 版 bash 的 Windows 版本。所有命令都是 Powershell 原生的,它可以与任何程序的输出进行交互,从而实现更多功能。
它们之间的主要区别是什么?
cmd 是一种非常容易学习的语言,但它的功能非常有限。
Powershell 是一种非常复杂的语言,除非您还熟悉其他语言(例如 bash),否则很难掌握。但是一旦掌握了它,它就会为您打开一个无限可能的世界。它的优势在于将命令连接在一起(将一个命令的输出重定向到下一个命令,并将其重定向到下一个命令等),并且能够使用输出,将其编辑成更有用的东西,然后显示或保存它。
答案2
批处理和 powershell 之间没有太多共同点。
批处理已经存在 30 年了,唯一的重大扩展是通过从 MSDOS 到 Windows 的转变而实现的。
Batch 仅支持简单命令和非常基本的字符串/数学运算。
您可以自行构建最必要的功能,并且这对我来说很有趣。
但我不会用它来构建高效的脚本,因为构建可靠、可维护、万无一失的脚本真的很难(我知道我在说什么)。
Powershell 拥有完全属于自己的语法风格,与任何其他 shell 都不兼容。
它基于 .NET 对象,命令作用于对象而不是文本。
它比批处理功能强大得多,但 PowerShell 就像所有新的 Microsoft未来工具,一匹死马。
它将存在几年,直到微软用下一代工具取代它未来工具。
恕我直言,不值得学习语法。
就我个人而言,我使用 git-bash 或 cygwin for windows。但大多数时候我使用 Linux 系统,以提高工作效率。