Skryptowanie plików wsadowych sięga czasów, gdy MS-DOS został wydany w 1981 roku jako system operacyjny dla komputerów osobistych IBM. Był to w zasadzie klon CP / M firmy Digital Research, jednego z pierwszych systemów operacyjnych dla mikrokomputera. Microsoft uruchomił go na komputerach IBM działających zarówno jako jądro i powłoka, jak i niektóre dodatkowe funkcje innych powłok. Z czasem Microsoft wydał kilka wersji DOS, a następnie rozszerzył pliki wsadowe na wiele sposobów. Potem pojawia się Windows, który szybko ewoluował z aplikacji w pełnoprawny system operacyjny. Microsoft zawarł interpreter wiersza poleceń o nazwie „Wiersz polecenia” (lub „cmd”) w linii systemów operacyjnych Windows NT, która używała zasadniczo tych samych poleceń z Command.com, ale z dodatkowymi funkcjami.
W przeciwieństwie do wcześniejszych wersji, które pozwalały tylko na uruchamianie pliku .BAT w wierszu poleceń MS-DOS, ten ulepszony 32-bitowy interpreter wiersza poleceń sprawił, że język wsadowy był bardziej użyteczny dzięki wielu ulepszeniom i dodatkowym funkcjom. Jednak interpreter wiersza poleceń nie był w stanie zapewnić spójności, ponieważ nie można ich użyć do automatyzacji wieloaspektowych funkcjonalności graficznego interfejsu użytkownika. Nie był wystarczająco mocny, aby zadowolić zaawansowanych użytkowników. Tak więc Microsoft rozpoczął pracę nad nowym podejściem do zarządzania wierszem poleceń i ostatecznie wydał nowy ulepszony CLI o nazwie „Monad” w 2002 roku. Udało mu się pokonać niedociągnięcia swojego poprzednika. Do 2005 roku Microsoft wydał już trzy wersje Monady. W 2006 roku nazwa została formalnie zmieniona na „Windows PowerShell”, która żegna się ze starym skryptem plików wsadowych.
Wiersz polecenia lub cmd to interpreter wiersza polecenia dla systemów operacyjnych Microsoft Windows służący do automatyzacji różnych zadań związanych z systemem za pomocą skryptów i plików wsadowych. Często nazywany cmd.exe, to program systemu Windows, który wydaje polecenia do systemu, takie jak polecenia zarządzania plikami, takie jak kopiowanie, wklejanie i usuwanie. Emuluje większość możliwości wiersza poleceń dostępnych w MS-DOS poprzez interfejs wiersza poleceń. Został pierwotnie wydany jako interpreter wiersza poleceń (CLI) dla rodziny systemów operacyjnych Windows NT i został opracowany przez Therese Stowell. CMD ma wbudowane polecenia do wykonywania różnych zadań, z których większość może być wykonana jako administrator. Wiersz polecenia można uzyskać za pomocą skrótu znajdującego się w menu Start lub polecenia cmd Run. Jest dostępny w prawie wszystkich wersjach systemu Windows.
PowerShell jest bardziej zaawansowaną wersją cmd używaną do uruchamiania zewnętrznych programów, takich jak ping lub kopiowanie i automatyzacji wielu różnych zadań administracyjnych systemu, które nie są dostępne z cmd.exe. Jest dość podobny do cmd, z wyjątkiem tego, że jest bardziej wydajny i używa różnych poleceń. To coś więcej niż skorupa; to środowisko skryptowe zaprojektowane specjalnie dla administratorów systemu do wykonywania zadań administracyjnych w wielu systemach operacyjnych. Jest to narzędzie wiersza polecenia oparte na zadaniach i język skryptowy zbudowany na platformie .Net. Wywołuje bardzo bogaty zestaw poleceń w kontekście skryptów automatyzacji zwanych „cmdletami”, które umożliwiają administrowanie w systemach Windows. Są również łatwe w użyciu dzięki standardowej składni, co ułatwia tworzenie potężnych skryptów. Jest to znacznie potężniejszy interpreter wiersza poleceń niż wiersz polecenia, który może interpretować zarówno polecenia wsadowe, jak i polecenia PowerShell.
Zarówno cmd, jak i PowerShell to potężne narzędzia wiersza poleceń służące do automatyzacji zadań związanych z administrowaniem systemem poprzez pisanie pliku skryptu / pliku wsadowego. Jednak cmd ma ograniczone możliwości administracyjne w porównaniu z PowerShell, który z drugiej strony jest bardziej zaawansowaną i nowoczesną implementacją powłoki z dodatkowymi funkcjami i ulepszeniami. PowerShell został specjalnie zaprojektowany dla administratorów systemów w celu kontrolowania i automatyzacji administracji systemami Windows.
PowerShell jest używany głównie przez administratorów systemu do zarządzania siecią, a także systemami i aplikacjami, które są częścią tej sieci. Może skutecznie interpretować zarówno polecenia Batch, jak i PowerShell, podczas gdy cmd może interpretować tylko polecenia Batch. Wiersz polecenia zapewnia sposób interakcji z programem komputerowym za pomocą poleceń wydawanych przez użytkownika.
W przeciwieństwie do wiersza polecenia, który może tylko potokować strumienie tekstu, wynik generowany z polecenia cmdlet jest czymś więcej niż tylko strumieniem tekstu; przenoszą obiekty między cmdletami, co pozwala im dzielić bardziej złożone dane między cmdletami.
PowerShell używa znacznie potężniejszych funkcji zwanych „cmdletami”, które stanowią bogaty zestaw poleceń do wykonywania potężniejszych zapytań o lepszych wynikach niż w wierszu poleceń systemu Windows. Funkcje programu PowerShell są znacznie bardziej skomplikowane, ale potężne niż tradycyjny wiersz polecenia i bardzo dobrze można ich używać ze standardową składnią.
PowerShell to coś więcej niż powłoka; jest to potężne środowisko skryptowe oparte na frameworku .Net, którego można używać do uruchamiania złożonych skryptów do administrowania systemem Windows łatwiej i wydajniej niż w przypadku wiersza polecenia. Ponadto PowerShell zawiera kilka ulepszeń i dodatkowych funkcji, które rozszerzają jego zastosowanie, które ostatecznie poprawiają jego użyteczność.
Zarówno PowerShell, jak i wiersz poleceń są narzędziami wiersza polecenia opartymi na zadaniach, służącymi do szybkiego automatyzacji zadań związanych z administrowaniem systemem, ale istnieją między nimi znaczne różnice pod względem funkcjonalności i użyteczności. CMD to podstawowa powłoka wiersza poleceń wprowadzona w rodzinie systemów operacyjnych Windows NT z taką samą znormalizowaną składnią i funkcjonalnością jak DOS. Z drugiej strony, PowerShell jest powłoką wiersza poleceń i językiem skryptowym opartym na frameworku .Net używanym do automatyzacji przetwarzania wsadowego i tworzenia narzędzi do zarządzania systemem. W przeciwieństwie do cmd wykorzystuje bogaty zestaw poleceń zwanych cmdletami do wykonywania zadań administracyjnych systemu.