Los scripts de archivos por lotes se remontan a la época en que se lanzó MS-DOS en 1981 como un sistema operativo para computadoras personales de IBM. Básicamente, era un clon del CP / M de Digital Research, uno de los primeros sistemas operativos para microcomputadoras. Microsoft lo hizo funcionar en PC de IBM que actúan como kernel y shell, junto con algunas características adicionales de otros shells. Microsoft lanzó varias versiones de DOS a lo largo del tiempo y posteriormente extendió los archivos por lotes de muchas maneras. Luego viene Windows, que evolucionó rápidamente de una aplicación a un sistema operativo de pleno rendimiento. Microsoft incluyó un intérprete de línea de comandos llamado "Símbolo del sistema" (o "cmd") en su línea de sistemas operativos Windows NT que usó básicamente los mismos comandos de Command.com pero con características adicionales.
En contraste con las versiones anteriores, que solo permitirían la ejecución de un archivo .BAT en el indicador de MS-DOS, este intérprete de línea de comandos mejorado de 32 bits hizo que el lenguaje por lotes fuera más útil debido a las muchas mejoras y características adicionales. Sin embargo, el intérprete de la línea de comandos no pudo brindar consistencia porque no pudieron utilizarse para automatizar las funcionalidades multifacéticas de la interfaz gráfica de usuario. No era lo suficientemente potente como para satisfacer a los usuarios avanzados. Entonces, Microsoft comenzó a trabajar en un nuevo enfoque para la gestión de la línea de comandos y finalmente lanzó una nueva CLI llamada "Monad" en 2002. Logró superar las deficiencias de su antecesora. Para el año 2005, Microsoft ya lanzó tres versiones de Monad. En 2006, el nombre se cambió formalmente a "Windows PowerShell", que se despidió de los scripts de archivos por lotes de la vieja escuela.
El símbolo del sistema o cmd es el intérprete de línea de comandos para los sistemas operativos de Microsoft Windows que se utiliza para automatizar varias tareas relacionadas con el sistema mediante scripts y archivos por lotes. A menudo denominado cmd.exe, es un programa de Windows que emite comandos al sistema, como comandos de administración de archivos como copiar, pegar y eliminar. Emula la mayoría de las capacidades de línea de comandos disponibles en MS-DOS a través de una interfaz de línea de comandos. Fue lanzado inicialmente como el intérprete de línea de comandos (CLI) para la familia de sistemas operativos Windows NT y fue desarrollado por Therese Stowell. CMD tiene comandos incorporados para ejecutar varias tareas, la mayoría de las cuales se pueden ejecutar como administrador. Se puede acceder a la línea de comandos a través de su acceso directo ubicado en el menú Inicio o mediante el comando Ejecutar de cmd. Está disponible en casi todas las versiones de windows..
PowerShell es una versión más avanzada del cmd que se utiliza para ejecutar programas externos como hacer ping o copiar y automatizar muchas tareas de administración del sistema diferentes a las que no se puede acceder desde cmd.exe. Es bastante similar a cmd, excepto que es más potente y utiliza diferentes comandos por completo. Es más que una simple concha; es un entorno de scripting diseñado específicamente para que los administradores de sistemas realicen tareas administrativas en múltiples sistemas operativos. Es una herramienta de línea de comandos basada en tareas y un lenguaje de secuencias de comandos creado en el marco .Net. Invoca un conjunto muy rico de comandos en el contexto de los scripts de automatización llamados "cmdlets" que permiten la administración en sistemas Windows. También son fáciles de usar con la sintaxis estandarizada, lo que facilita la creación de scripts potentes. Es un intérprete de línea de comandos mucho más poderoso que el Símbolo del sistema que puede interpretar tanto los comandos por lotes como los comandos de PowerShell..
Tanto cmd como PowerShell son potentes herramientas de línea de comandos que se utilizan para automatizar las tareas de administración del sistema al escribir un archivo de script / lote. Sin embargo, cmd tiene capacidades de administración limitadas en comparación con PowerShell, que, por otro lado, es una implementación de shell más avanzada y moderna con características y mejoras adicionales. PowerShell está especialmente diseñado para que los administradores de sistemas puedan controlar y automatizar la administración de sistemas Windows.
PowerShell es utilizado principalmente por los administradores de sistemas para administrar la red, así como los sistemas y aplicaciones que forman parte de esa red. Puede interpretar de manera eficiente tanto los comandos Batch como los comandos de PowerShell, mientras que cmd puede interpretar solo los comandos Batch. El símbolo del sistema proporciona un medio para interactuar con el programa de computadora con la ayuda de comandos emitidos por el usuario.
A diferencia del símbolo del sistema, que solo puede canalizar flujos de texto, la salida generada desde un cmdlet es más que un flujo de texto; canalizan objetos entre cmdlets, lo que les permite compartir datos más complejos entre cmdlets.
PowerShell usa funciones mucho más potentes llamadas "cmdlets", que constituyen un rico conjunto de comandos para ejecutar consultas más potentes con mejores resultados que los encontrados en la línea de comandos de Windows. Las funciones de PowerShell son mucho más complicadas pero potentes que el Símbolo del sistema tradicional y se pueden usar muy bien con la sintaxis estandarizada.
PowerShell es más que una simple shell; es un potente entorno de secuencias de comandos basado en el marco .Net que se puede usar para ejecutar secuencias de comandos complejas para la administración del sistema de Windows de forma más fácil y eficiente que con el símbolo del sistema. Además, PowerShell incluye varias mejoras y características adicionales que amplían su uso, lo que eventualmente mejora su capacidad de uso..
Tanto PowerShell como Command Prompt son herramientas de línea de comandos basadas en tareas que se utilizan para automatizar rápidamente las tareas de administración del sistema, pero existen diferencias significativas entre los dos en términos de funcionalidad y facilidad de uso. CMD es un shell de línea de comandos básico que se presenta con la familia de sistemas operativos Windows NT con la misma sintaxis y funcionalidad estandarizadas que DOS. PowerShell, por otro lado, es un shell de línea de comandos basado en tareas y un lenguaje de scripting basado en el marco .Net utilizado para automatizar el procesamiento por lotes y crear herramientas de administración del sistema. A diferencia de cmd, usa un amplio conjunto de comandos llamados cmdlets para realizar tareas de administración del sistema.