Kịch bản tập tin hàng loạt quay ngược thời gian khi MS-DOS được phát hành năm 1981 dưới dạng hệ điều hành cho máy tính cá nhân của IBM. Nó về cơ bản là một bản sao của CP / M của Digital Research, một trong những hệ điều hành đầu tiên dành cho máy vi tính. Microsoft đã làm cho nó chạy trên các máy tính IBM hoạt động như cả kernel và shell cùng với một số tính năng bổ sung của các shell khác. Microsoft đã phát hành một số phiên bản DOS theo thời gian sau đó mở rộng các tệp bó theo nhiều cách. Sau đó, Windows xuất hiện nhanh chóng từ một ứng dụng sang hệ điều hành đầy đủ. Microsoft đã bao gồm một trình thông dịch dòng lệnh có tên là Command Command Prompt [(hay cm cmd) trong dòng hệ điều hành Windows NT của họ, về cơ bản sử dụng các lệnh tương tự của Command.com nhưng với các tính năng bổ sung.
Trái ngược với các phiên bản trước đó chỉ cho phép chạy tệp .BAT trong dấu nhắc MS-DOS, trình thông dịch dòng lệnh 32 bit nâng cao này làm cho ngôn ngữ bó hữu ích hơn nhờ có nhiều cải tiến và các tính năng bổ sung. Tuy nhiên, trình thông dịch dòng lệnh không thể cung cấp tính nhất quán vì chúng không thể được sử dụng để tự động hóa các chức năng nhiều mặt của giao diện người dùng đồ họa. Nó không đủ mạnh để thỏa mãn người dùng quyền lực. Vì vậy, Microsoft đã bắt đầu thực hiện một cách tiếp cận mới để quản lý dòng lệnh và cuối cùng đã phát hành một CLI cải tiến mới có tên là Mon Monad vào năm 2002. Nó đã tìm cách khắc phục những thiếu sót của người tiền nhiệm. Đến năm 2005, Microsoft đã phát hành ba phiên bản Monad. Vào năm 2006, tên này đã chính thức được đổi thành Windows Windows PowerShell, tạm biệt với tập lệnh tập tin cũ của trường học cũ.
Command Prompt hoặc cmd là trình thông dịch dòng lệnh cho các hệ điều hành Microsoft Windows được sử dụng để tự động hóa các tác vụ liên quan đến hệ thống khác nhau bằng cách sử dụng tập lệnh và tệp bó. Thường được gọi là cmd.exe, đây là một chương trình windows phát lệnh cho hệ thống như các lệnh quản lý tệp như sao chép, dán và xóa. Nó mô phỏng hầu hết các khả năng của dòng lệnh có sẵn trong MS-DOS thông qua giao diện dòng lệnh. Ban đầu nó được phát hành dưới dạng trình thông dịch dòng lệnh (CLI) cho họ hệ điều hành Windows NT và được phát triển bởi Therese Stowell. CMD có các lệnh tích hợp để thực thi các tác vụ khác nhau, hầu hết có thể được thực thi với tư cách quản trị viên. Dấu nhắc lệnh có thể được truy cập thông qua phím tắt nằm trong Menu Bắt đầu hoặc thông qua lệnh Chạy cmd. Nó có sẵn trong hầu hết các phiên bản của windows.
PowerShell là phiên bản nâng cao hơn của cmd được sử dụng để chạy các chương trình bên ngoài như ping hoặc sao chép và tự động hóa nhiều tác vụ quản trị hệ thống khác nhau không thể truy cập từ cmd.exe. Nó khá giống với cmd ngoại trừ nó mạnh hơn và sử dụng các lệnh khác nhau hoàn toàn. Nó không chỉ là một cái vỏ; đó là một môi trường tập lệnh được thiết kế dành riêng cho quản trị viên hệ thống để thực hiện các tác vụ quản trị trên nhiều hệ điều hành. Đó là một công cụ dòng lệnh và ngôn ngữ kịch bản dựa trên tác vụ được xây dựng trên khung .Net. Nó gọi ra một tập hợp các lệnh rất phong phú trong bối cảnh các tập lệnh tự động hóa có tên là cmdlets, cho phép quản trị trong các hệ thống windows. Chúng cũng dễ sử dụng với cú pháp được tiêu chuẩn hóa giúp chúng dễ dàng tạo các tập lệnh mạnh mẽ. Đó là trình thông dịch dòng lệnh mạnh mẽ hơn nhiều so với Command Prompt, có thể diễn giải cả lệnh Batch và lệnh PowerShell.
Cả cmd và PowerShell đều là các công cụ dòng lệnh mạnh mẽ được sử dụng để tự động hóa các tác vụ quản trị hệ thống bằng cách viết tệp script / batch. Tuy nhiên, cmd có khả năng quản trị hạn chế so với PowerShell, mặt khác, là một triển khai hệ vỏ hiện đại và tiên tiến hơn với các tính năng và cải tiến bổ sung. PowerShell được thiết kế đặc biệt để quản trị viên hệ thống kiểm soát và tự động hóa việc quản trị hệ thống windows.
PowerShell chủ yếu được sử dụng bởi các quản trị viên hệ thống để quản lý mạng cũng như các hệ thống và ứng dụng là một phần của mạng đó. Nó có thể diễn giải hiệu quả cả hai lệnh Batch và các lệnh PowerShell, trong khi cmd chỉ có thể diễn giải các lệnh Batch. Command Prompt cung cấp phương tiện tương tác với chương trình máy tính với sự trợ giúp của các lệnh do người dùng cấp.
Không giống như Command Prompt, chỉ có thể truyền các luồng văn bản, đầu ra được tạo từ một lệnh ghép ngắn không chỉ là luồng văn bản; chúng đặt các đối tượng giữa các lệnh ghép ngắn cho phép chúng chia sẻ dữ liệu phức tạp hơn giữa các lệnh ghép ngắn.
PowerShell sử dụng các hàm mạnh hơn nhiều có tên là cmdlets, cấu thành một bộ lệnh phong phú để thực hiện các truy vấn mạnh hơn với đầu ra tốt hơn so với dòng lệnh Windows. Các chức năng của PowerShell phức tạp hơn nhưng mạnh hơn nhiều so với Command Prompt truyền thống và chúng có thể được sử dụng rất tốt với cú pháp được tiêu chuẩn hóa.
PowerShell không chỉ là một cái vỏ; nó là một môi trường tập lệnh mạnh mẽ dựa trên khung .Net có thể được sử dụng để chạy các tập lệnh phức tạp để quản trị hệ thống windows dễ dàng và hiệu quả hơn so với Command Prompt. Ngoài ra, PowerShell bao gồm một số cải tiến và các tính năng bổ sung giúp mở rộng việc sử dụng, cuối cùng cải thiện khả năng sử dụng của nó.
Cả PowerShell và Command Prompt đều là các công cụ dòng lệnh dựa trên nhiệm vụ được sử dụng để tự động hóa nhanh chóng các tác vụ quản trị hệ thống, nhưng có sự khác biệt đáng kể giữa hai về chức năng và khả năng sử dụng. CMD là một dòng lệnh cơ bản giới thiệu với họ hệ điều hành Windows NT với cú pháp và chức năng được tiêu chuẩn hóa tương tự như DOS. Mặt khác, PowerShell là lớp vỏ dòng lệnh và ngôn ngữ kịch bản dựa trên tác vụ dựa trên khung .Net được sử dụng để tự động xử lý hàng loạt và tạo các công cụ quản lý hệ thống. Không giống như cmd, nó sử dụng một nhóm lệnh phong phú gọi là cmdlets để thực hiện các tác vụ quản trị hệ thống.