PowerShell sí permite ejecutar archivos por lotes, veamos cómo hacerlo

Uno de los grandes atractivos que nos presenta el sistema operativo de Microsoft, Windows, es la interfaz gráfica de la que podemos hacer uso. De hecho, es uno de los apartados que más llamó la atención de los usuarios que venían de los equipos basados en MS-DOS. Sin embargo, los amantes de los comandos pueden seguir utilizándolos gracias a la ventana del símbolo del sistema y a PowerShell.

El sistema operativo de los de Redmond ponen a nuestra disposición una enorme cantidad de funciones y características incluidas por defecto. Al mismo tiempo intentan facilitar en gran medida el trabajo con todo ello gracias a la mencionada interfaz gráfica. Hay que tener en cuenta que el sistema operativo Windows es utilizado por más de mil millones de personas en todo el mundo, algunos con más conocimientos que otros. Por tanto, el software se tiene que adaptar a las necesidades de todos para ser útil.

Como os decimos al mismo tiempo pone a disposición de los usuarios más aventajados o experimentados determinadas funcionalidades. Con estas pueden sacar el máximo provecho al sistema operativo y adaptarlo a sus necesidades. Sirva como ejemplo la ventana del símbolo del sistema o la aplicación de PowerShell. Seguro que muchos de vosotros ya sabéis que estas dos secciones del sistema basan su funcionamiento en el uso de comandos. Por tanto, están especialmente dirigidas a los usuarios más avanzados de Windows que quieran tener un mayor control sobre el software de Microsoft.

Sin embargo, entre ambas aplicaciones hay algunas importantes diferencias. En este caso nos queremos centrar en un modo de funcionamiento en concreto, nos referimos a la posibilidad de ejecutar archivos .CMD directamente desde una ventana de PowerShell.

Qué es un archivo .CMD

Llegados a este punto lo primero que debemos saber es realmente lo que son los archivos .CMD y su principal utilidad. Pues bien, estos son un tipo de archivo que se usan en PCs basados en Windows. Por regla general los mismos se usan para la ejecución por lotes de una serie de órdenes que aunamos en dicho fichero. De esta manera los .CMD contienen una serie de comandos que esperamos que se ejecuten al invocarlo.

Además, estos se colocan en un orden concreto, que es precisamente en el que los mismos deben ejecutarse al hacer la llamada al .CMD de un modo u otro. Por tanto, este formato de archivo en concreto es conocido como el formato de archivo para la ejecución de comandos por lotes. Hay que decir que en multitud de ocasiones estos archivos se utilizan para la ejecución por lotes de diversos comandos a través de una ventana del símbolo del sistema. A la misma accedemos precisamente escribiendo el comando CMD en el cuadro de búsqueda de Windows.

abrir cmd

A lo largo de los últimos años un claro sustituto de este apartado lo ha supuesto PowerShell, por lo que multitud de usuarios han decidido pasarse a esta otra herramienta de Windows. De hecho se considera una aplicación más potente y versátil que el símbolo del sistema. Nos ofrece multitud de ventajas a la hora de trabajar desde la línea de comandos, aunque al mismo tiempo también presenta algunos inconvenientes, especialmente para los usuarios menos experimentados.

Ejecutar un archivo .CMD directamente en PowerShell

Como estamos es la utilidad fomente los archivos en formato .CMD es muy elevada en determinados tipos de uso. Sin embargo, algunos usuarios se pueden encontrar con que no puedan ejecutar estos archivos directamente en una ventana de PowerShell. Pues bien, si os encontráis en este caso que os hemos expuesto, a continuación, os vamos a ayudar. En concreto os vamos a decir la manera más sencilla de poder ejecutar un archivo de estas características que os comentamos, directamente en PowerShell.

Abrir una ventana de PowerShell en Windows

Es evidente que para ello lo primero que tenemos que hacer es acceder a esta funcionalidad de Windows 10 que os comentamos. Tenemos varias maneras de acceder a este apartado, por ejemplo, pinchando con el botón derecho del ratón sobre el menú inicio. De entre las muchas opciones que encontramos en este listado, vemos una llamada Windows PowerShell.

powershell inicio

Otro método que nos será muy útil a la hora de ejecutar esta funcionalidad es escribir su nombre en el cuadro de búsqueda del sistema operativo. Además, cuando veamos la correspondiente entrada para abrir la aplicación, os recomendamos pulsar con el botón derecho del ratón sobre la misma. Esto nos permitirá ejecutar la misma con permisos de administrador, lo que nos ofrecerá muchas ventajas especialmente para los usuarios más avanzados.

powershell abrir

Una vez hayamos accedido a este apartado utilizando cualquiera de los dos métodos expuestos, nos encontramos con la correspondiente ventana de PowerShell.

ventana de PowerShell

Ejecutar.CMD desde la ventana PowerShell

Lo primero que debemos saber es que PowerShell funciona de forma diferente a la ventana símbolo del sistema. Es por ello que la ejecución de ciertos comandos en ambas aplicaciones no se lleva a cabo de la misma manera. De ahí que al intentar ejecutar un archivo por lotes del que os hemos hablado anteriormente de manera directa, nos mostrará un mensaje de error.

Pero eso no quiere decir que esto sea algo que no podemos llevar a cabo desde esta herramienta, pero sí que tendremos que utilizar un comando adicional. Os contamos todo esto porque tenemos la posibilidad de ejecutar un archivo.CMD en PowerShell utilizando el parámetro Invoke-Expression. Este se encarga de ejecutar el comando especificado a continuación o cualquier programa en el PC local desde directamente en una sesión de PowerShell.

Esto es algo que igualmente podemos utilizar para ejecutar scripts en lugar de programas, o integrar Invoke-Expression en scripts creados en PowerShell para ejecutar programas o archivos desde los mismos. Para que os hagáis una iré al formato que deberíamos utilizar aquí, os pondremos un ejemplo. A continuación, os vamos a mostrar crear como ejecutar el archivo softzone.cmd que se encuentra ubicado en la unidad E del sistema. No hace falta explicar que previamente en este archivo ya colocamos los comandos que deseamos ejecutar por lotes.

Invoke-Expression -Command "E:/softzone.cmd"

De este modo que gracias a este sencillo comando que especificamos antes de la ruta del fichero, se nos abre un amplio abanico de posibilidades en PowerShell. Su utilización posterior ya dependerá de los conocimientos o experiencia de cada en este tipo de proyectos en Windows.

¡Sé el primero en comentar!