Powershell 與 Cmd

Powershell 與 Cmd

我最近從 Ubuntu 轉移到 Windows 10。它們之間的主要區別是什麼?

答案1

CMD 起源於 Dos 時代。它具有簡單的命令結構,是一種每行指令語言。

您發出命令,獲得回饋,這對於啟動程式最有用。為了完成更複雜的事情,您通常需要使用專門執行此功能的程式。

cmd 確實附帶了許多命令,例如複製、移動,但它們仍然用於執行一些基本任務。

PowerShell 是更進階的語言,是命令提示字元的擴充版本。它的創建是為了使用 .net 框架,提供 Linux 上 bash 的 Windows 變體。所有命令都是 Powershell 原生的,它可以與任何程式的輸出交互,使其執行更多操作。

它們之間的主要區別是什麼?

cmd 是一種非常容易學習的語言,但它的功能非常有限。

Powershell 是一種非常複雜的語言,除非您也了解其他語言(例如 bash),否則不容易掌握。但一旦你掌握了它,它就會打開一個充滿可能性的世界。它的優勢在於將命令連接在一起(將輸出從一個命令重定向到下一個命令,並將其重定向到下一個命令等),並能夠使用輸出,將其編輯為更有用的內容,然後顯示或保存它。

答案2

Batch 和 powershell 之間沒有太多共同點。

Batch 已經存在了 30 年,唯一的主要擴充是從 MSDOS 到 Windows 的轉變。

批次僅支援簡單的命令和非常基本的字串/數學運算。
可以自己建構最必要的功能,並且這對我來說很有趣
但我不會用它來建立高效的腳本,因為建立可靠、可維護和防彈的腳本真的很難(我知道我在說什麼)。

Powershell 擁有完整的自己的語法風格,與任何其他 shell 都不相容。
它基於 .NET 對象,命令適用於對象而不是文字。
它比批次功能強大得多,但 PowerShell 就像全新的 Microsoft未來工具,死馬。
它將存在幾年,直到微軟用下一個產品取代它未來工具。

恕我直言,不值得學文法。

就我個人而言,我在 Windows 上使用 git-bash 或 cygwin。但大多數時間我都在使用 Linux 系統,以提高工作效率。

相關內容