Command Prompt (cmd) và PowerShell khác nhau như thế nào?

Windows 7 đã thêm PowerShell, một dòng lệnh và ngôn ngữ script mạnh mẽ hơn Command Prompt. Kể từ Windows 7, PowerShell trở nên nổi bật hơn, thậm chí trở thành sự lựa chọn mặc định trong Windows 10.

PowerShell phức tạp hơn Command Prompt truyền thống, nhưng nó cũng mạnh hơn nhiều. Command Prompt không thể so sánh được với các hệ vỏ có sẵn cho Linux và các hệ thống giống Unix, nhưng PowerShell lại có thể. Ngoài ra, hầu hết các lệnh Command Prompt đều có thể sử dụng được trong PowerShell.

PowerShell khác Command Prompt như thế nào?

PowerShell thực sự rất khác so với Command Prompt. Nó sử dụng các lệnh khác nhau được gọi cmdlet. Nhiều nhiệm vụ quản trị hệ thống như từ quản lý registry đến WMI (Windows Management Instrumentation) đều được hiển thị qua các lệnh cmdlet của PowerShell, trong khi Command Prompt không thể thực hiện được.

So sánh Command Prompt và PowerShell

PowerShell sử dụng các đường ống (pipe) - giống như Linux - cho phép bỏ qua đầu ra của một lệnh cmdlet đến đầu vào của một lệnh cmdlet khác. Do đó, bạn có thể sử dụng nhiều lệnh cmdlet theo thứ tự để thao tác cùng một dữ liệu. Không giống như các hệ thống Unix chỉ có thể chuyển hướng các dòng ký tự (văn bản), PowerShell có thể chuyển hướng đối tượng (object) giữa các lệnh cmdlet. Trong PowerShell có nhiều đối tượng, bao gồm mọi phản hồi có thể nhận được từ một lệnh cmdelt. Điều này cho phép PowerShell chia sẻ dữ liệu phức tạp hơn giữa các lệnh cmdlet, hoạt động giống như một ngôn ngữ lập trình.

PowerShell không chỉ là một hệ vỏ, nó còn là một môi trường script mạnh mẽ mà người dùng có thể sử dụng để tạo các tập lệnh phức tạp quản lý hệ thống Windows dễ dàng hơn nhiều so với Command Prompt.

Command Prompt về cơ bản chỉ là một môi trường cũ được chuyển tiếp trong Windows, một môi trường sao chép tất cả các lệnh DOS khác có thể tìm thấy trên một hệ thống DOS. Nó bị hạn chế, không thể truy cập vào nhiều tính năng quản trị hệ thống của Windows, khó có thể viết được các script phức tạp. PowerShell là một môi trường mới cho các quản trị viên hệ thống Windows cho phép họ sử dụng một môi trường dòng lệnh hiện đại hơn để quản lý Windows.

Khi nào nên sử dụng PowerShell?

Khi nào một người dùng Windows bình thường nên sử dụng PowerShell?

Nếu ít khi sử dụng Command Prompt để chạy các lệnh ping hoặc ipconfig, bạn thực sự không cần phải sử dụng PowerShell. Nếu người dùng cảm thấy thoải mái với Command Prompt, thì có thể sử dụng nó. Tuy nhiên hầu hết các lệnh trong Command Prompt đều có thể hoạt động tốt trong PowerShell.

PowerShell là một môi trường dòng lệnh mạnh hơn nhiều so với Command Prompt. Ví dụ, nó có thể thực hiện các hoạt động tìm kiếm và thay thế để đổi tiên một loại các tập tin, đôi khi nó cũng yêu cầu cài đặt chương trình của bên thứ ba. Người dùng Linux luôn có thể thực hiện được điều này trong khi người dùng Windows thì không thể.

Đổi tên một loạt các tệp

Tuy nhiên, PowerShell không giống như terminall của Linux, nó phức tạp hơn và có thể gây khó khăn cho người dùng Windows bình thường. Những quản trị viên hệ thống sẽ muốn học PowerShell để có thể quản lý hệ thống một cách hiệu quả hơn. Và nếu cần viết một script để tự động hoá các nhiệm vụ quản trị hệ thống khác nhau, bạn nên thực hiện nó với PowerShell.

Các lệnh Command Prompt tương đương trong PowerShell

Nhiều lệnh Command Prompt phổ biến như từ ipconfig đến cd đều có thể thực hiện trong môi trường PowerShell. Điều này là do PowerShell chứa "alias" có thể thực hiện các lệnh cũ với các lệnh cmdlet mới thích hợp, chạy các lệnh cmdelt mới khi gõ lệnh cũ.

Dưới đây là danh sách các lệnh Command Prompt phổ biến và các lệnh tương đương trong PowerShell.

Thay đổi một thư mục

  • DOS: cd
  • PowerShell: Set-Location

Danh sách các tập tin trong một thư mục

  • DOS: dir
  • PowerShell: Get-ChildItem

Đổi tên một tệp

  • DOS: rename
  • PowerShell: Rename-Item

Để biết một lệnh DOS có alias hay không, bạn có thể sử dụng lệnh cmdlet Get-Alias. Ví dụ, gõ Get-Alias cd sẽ cho bạn biết lệnh cd thực sự được chạy bằng lệnh cmdlet Set-Location.

Chạy lệnh Get-Alias

Xem thêm:

Thứ Hai, 09/07/2018 06:37
42 👨 2.948