Если вы являетесь администратором Windows и проводите большую часть своего времени, работая в среде Windows, возможно, вы много раз сталкивались с терминами CMD и PowerShell. Но в чем разница между этими PowerShell и CMD? В этой статье вы получите исчерпывающий обзор PowerShell против CMD, некоторых команд и сравнительную таблицу, чтобы вы могли легко понять все существенные различия.
Разница между CMD и PowerShell заключается в том, что CMD – это «традиционный» стиль командной строки или интерактивной оболочки. Он очень удобен в использовании, и тысячи людей могут его без проблем выполнить. С другой стороны, PowerShell – это встроенная, но сложная программа командной строки Microsoft, которая значительно уступает оболочкам, доступным для систем на базе Linux или Unix. Большинство команд командной строки легко использовать в PowerShell изначально или через псевдонимы.
Итак, в чем разница между и как это произошло? На протяжении многих лет было много споров о точном происхождении PowerShell. Он был разработан как замена интерфейса командной строки, поставляемого с системами UNIX, чтобы системные администраторы могли сэкономить свое драгоценное время и автоматизировать задачи администрирования. Нет никаких сомнений в том, что PowerShell стал неотъемлемой частью нашего компьютерного опыта.
CMD или «интерфейс командной строки» – это не что иное, как серия простых команд. Эти команды позволяют выполнять простые административные задачи и взаимодействовать с любым объектом Windows в операционных системах Microsoft Windows. Напротив, интерфейс командной строки PowerShell позволит вам выполнять более сложные задачи и сложные сценарии.
PowerShell делится на две основные категории: «Обычные» и «Особые». Типичный интерфейс PowerShell не имеет особых возможностей. Точно так же CMD разбита на серию команд. Итак, в чем разница между PowerShell и cmd?
PowerShell | Командная строка |
---|---|
PowerShell был представлен в 2006 году. | CMD был представлен в 1981 году. |
Вы можете запустить его, набрав PowerShell. | Вы можете запустить его, набрав CMD. |
Он поддерживает как пакетные, так и командлеты PowerShell. | На CMD следует запускать только пакетные команды. |
Он также поддерживает создание псевдонимов для командлетов, чтобы пользователи могли легко перемещаться между функциями. | CMD не может создавать псевдонимы команд. |
У вас есть свобода передавать выходные данные командлета другому командлету. | Вы никогда не сможете передать результат одной команды другой. |
PowerShell возвращает результат в виде объекта. | CMD возвращает только текст. |
Мы можем запустить последовательность командлетов в сценарии. | В cmd вторая команда будет запущена, если первая команда будет завершена. |
Вы можете использовать команду Help, чтобы с легкостью получить информацию о любых командлетах. | В CMD нет такой опции помощи. |
PowerShell имеет интегрированную среду сценариев (ISE). | Это просто интерфейс командной строки. |
Вы можете получить доступ к библиотекам программирования, потому что они построены на основе .NET Common Language Runtime (CLR). | Нет доступа к библиотекам |
Вы можете напрямую интегрировать его с WMI. | Если вам нужна интеграция с WMI, вам потребуются внешние плагины. |
С облачными продуктами Microsoft проще подключиться. | CMD не может подключиться к продуктам Microsoft Online. |
Он поддерживает системы Linux. | CMD не поддерживает системы Linux. |
Вы можете запускать все типы программ с помощью PowerShell. | ssCMD предназначен только для программ консольного типа. |
CMD:
cd /d D:
PowerShell:
Set-Location D:
Вывод: Обе команды, приведенные выше, были использованы для изменения текущего местоположения каталога на диск D.
CMD:
Dir
PowerShell:
Get-Childitem
Вывод: Как вы можете видеть в данном результате, обе команды используются для отображения файлов и папок, имеющихся в текущем каталоге.
CMD:
rename d:\old.txt new.txt
PowerShell:
Rename-Item "d:\new.txt" -NewName "old.txt"
Вывод: данные команды используются для переименования любого конкретного файла.
CMD:
Help
PowerShell:
Get-Help
Вывод: Если вы не являетесь экспертом, вы можете выполнить приведенные выше команды, чтобы получить полезную информацию о командах или командлете.
CMD:
Tasklist
PowerShell:
Get-Process
Вывод: как вы видели на картинке выше, обе команды используются для отображения всех запущенных задач.
CMD:
taskkill /IM "skype.exe" /F
PowerShell:
Stop-Process -Name "Skype" -Force
Вывод: любой запущенный процесс можно остановить с помощью заданных команд. Мы остановили Skype с помощью команд.
Если вы хотите использовать PowerShell в сочетании с командной строкой, то CMD – лучший вариант. Но когда у вас есть немного технических знаний и вам нужно использовать автоматизацию в своих административных задачах, вам следует использовать PowerShell. Итак, если вам нужна автоматизация, мы бы посоветовали использовать PowerShell.