Більшість із вас, мабуть, колись використовували командний рядок – чи то лише для того, щоб спробувати експеримент чи вирішити проблему, як-от відновлення даних після ураження ярликом вірусу. Але як щодо PowerShell, який з’явився пізніше? Яка різниця між PowerShell та cmd?
Ну, я впевнений – якщо ви не досвідчений користувач із знаннями програмування, ви навіть не потрудилися б відкрити PowerShell. Але чи можна його використовувати як заміну командному рядку? Це тільки для програмістів чи з ним легко познайомитися?
У нас є все, що вам потрібно знати про них обох. Щоб все було легко, ми не будемо заглиблюватися в корені їх відмінності, але в цій статті буде висвітлено лише суттєва різниця між PowerShell і cmd, щоб допомогти вам вибрати, який із них використовувати.
Історія
1. Командний рядок
Командний рядок є інтерпретатором командного рядка. Він існує в Windows з введення Windows 95. У той час він називався не «Командний рядок», а просто «cmd.exe», який дозволяв користувачам взаємодіяти з операційною системою за допомогою певних команд. А потім з Windows NT це було названо «Командний рядок».
Ну, теоретично, це було майже те ж саме, що COMMAND.COM (або відомий як MS-DOS) з великою кількістю покращень.

Хоча командний рядок технічно був оболонкою, але мав багато недоліків. По-перше, оболонка не могла допомогти автоматизувати всі аспекти функціональності графічного інтерфейсу. По-друге, він не підтримував створення складних сценаріїв.
2. PowerShell
Щоб подолати недоліки командного рядка, Microsoft почав розробляти оболонку під назвою Monad, яка була набагато потужнішою, ніж командний рядок (може виконувати різноманітні основні адміністративні завдання, які CMD не міг).

Пізніше, у 2006 році, його перейменували в Microsoft PowerShell. І нещодавно (у 2016 році) PowerShell було зроблено з відкритим вихідним кодом з кросплатформною підтримкою.
Технічні функції
Технічні відмінності мають значення лише для тих, хто хоче керувати й автоматизувати певні завдання, взаємодіючи з ОС через інтерфейс командного рядка. Якщо ви не знаєте, що таке мова програмування, знання технічних відмінностей вам не допоможе.
PowerShell використовує інший набір команд, відомий як командлети. Ви можете спробувати керувати багатьма задачами системного адміністрування. Однак ви не можете отримати доступ до нього через командний рядок. PowerShell також дає змогу використовувати – «Pipes» – це просто спосіб полегшити передачу інформації з однієї програми в іншу – це робить PowerShell ще потужнішим.
Крім того, як зазначено вище, за допомогою PowerShell ви можете створювати складні сценарії, але це не станеться з командним рядком.
Коротше кажучи, PowerShell є покращеним середовищем командного рядка в порівнянні з командним рядком.
CMD проти Powershell: команди
Якщо ви збираєтеся використовувати будь-який з них більшу частину часу, вам слід уважно ознайомитися з їх документацією тут:
Якщо ви просто хочете дізнатися основну різницю в їхніх командах, то ось що:
Коли ви спостерігаєте команду, як cd / dir / перейменувати (команди одним словом), це командний рядок для вас. Ось чому це все ще є найпростішим інструментом командного рядка.
Однак за допомогою Powershell ви зможете зробити команди більш виразними (описуючи їх роботу), наприклад:
Set-Location / Get-children / Rename-item
Windows PowerShell проти командного рядка: який із них слід використовувати?
Враховуючи, що PowerShell є набагато більш просунутим середовищем командного рядка, воно підходить лише для системних адміністраторів Windows.
Якщо ви знаєте, як створювати сценарії, керувати автоматизованими завданнями адміністрування в Windows, і хочете більше розширюваності для цього – тоді PowerShell для вас. Крім того, якщо ви знаєте мову програмування C#, це чудово впорається зі своєю роботою.
Однак якщо ви не програміст і поняття не маєте, чим займаються системні адміністратори, вам слід дотримуватися командного рядка. Він не буде застарілим. Командний рядок все ще використовуватиметься багатьма користувачами (включаючи програмістів) для виконання менш просунутих, але важливих речей, таких як очищення жорсткого диска, перетворення диска з GPT в MBR, відновлення після ярлика вірусу тощо.
Ви не хотіли б використовувати PowerShell, якщо хочете виправити незначні проблеми або просто перевірити деталі ping.
Підводячи підсумок
Тепер, коли ви знаєте про різницю між PowerShell і CMD, ви можете вибрати будь-кого, кого хочете, відповідно до завдання, яке ви хочете досягти. Серед них немає нічого кращого чи гіршого, все зводиться до того, чого хоче користувач.
Все-таки вас бентежить, чим PowerShell відрізняється від командного рядка? Повідомте нам свої думки в коментарях нижче.
Томас
Привіт, Анкуш,
Мушу визнати, що PowerShell потребував часу, щоб навчитися, але як тільки ви його навчитеся, він може творити магію.