Powershell против Cmd

Powershell против Cmd

Недавно я перешел с Ubuntu на Windows 10. В Windows есть два разных терминала: PowerShell и Command Prompt. В чем их основное различие?

решение1

CMD берет свое начало еще со времен Dos. Он имеет простую структуру команд и является языком построчных инструкций.

Вы даете команды, получаете обратную связь, и это в основном полезно для запуска программ. Для того, чтобы делать более сложные вещи, вам обычно нужно использовать программу, которая выполняет эту функцию специально.

cmd поставляется со множеством команд, таких как копирование и перемещение, но они все равно предназначены для выполнения некоторых базовых задач.

PowerShell — это более продвинутый язык, который является расширенной версией командной строки. Он был создан, чтобы иметь вариант bash для Linux, используя фреймворк .net. Все команды являются собственными для Powershell, и он может взаимодействовать с выводом любой программы, чтобы сделать ее еще более эффективной.

В чем их главное отличие?

cmd — очень простой в изучении язык, но его возможности весьма ограничены.

Powershell — очень сложный язык, который нелегко освоить, если вы не знаете, как обращаться с другими языками, такими как bash. Но как только вы его освоите, он откроет целый мир возможностей. Его сила в объединении команд (перенаправление вывода из одной команды в следующую и перенаправление его в следующую и т. д.) и в возможности использовать вывод, редактировать его во что-то более полезное, а затем отображать или сохранять это.

решение2

Между batch и powershell не так много общего.

Batch существует уже 30 лет, и единственным серьезным расширением стал переход с MSDOS на Windows.

Пакет поддерживает только простые команды и очень простые строковые/математические операции.
Можно построить самую необходимую функциональность самостоятельно, иэто весело для меня.
Но я бы не стал использовать его для создания продуктивных скриптов, потому что очень сложно создавать надежные, поддерживаемые и безотказные скрипты (и я знаю, о чем говорю).

Powershell имеет полностью собственный стиль синтаксиса, несовместимый с любой другой оболочкой.
Он основан на объектах .NET, команды работают с объектами, а не с текстом.
Он намного мощнее, чем пакетный режим, но PowerShell — это как все новые Microsoftбудущееинструменты, дохлая лошадь.
Он будет существовать несколько лет, пока Microsoft не заменит его следующимбудущееинструмент.

ИМХО, не стоит изучать синтаксис.

Лично я использую git-bash или cygwin для Windows. Но большую часть времени я работаю с Linux-системами, чтобы быть более продуктивным.

Связанный контент