¿Qué herramientas y lenguajes están disponibles para los scripts de shell de Windows?

StackOverflow https://stackoverflow.com/questions/32087

  •  09-06-2019
  •  | 
  •  

Pregunta

Quiero saber cuáles son las opciones para realizar algunos trabajos de scripting en la plataforma Windows.Necesito funcionalidades como manipulación de archivos, edición de registro, etc.¿Se pueden editar archivos usando herramientas de secuencias de comandos?¿Qué otra funcionalidad ofrecen las herramientas de scripting de Windows?¿Se puede hacer todo lo que se puede hacer con la GUI de Windows utilizando un lenguaje de programación?

¿Fue útil?

Solución

Creo WindowsPowerShell de Microsoft es el favorito actualmente para este tipo de cosas.

Otros consejos

Podría valer la pena mirar la versión preliminar de la versión 2.0.Muchas cosas han cambiado:

http://blogs.msdn.com/powershell/archive/2007/11/06/what-s-new-in-ctp-of-powershell-2-0.aspx

¿Qué tal instalar una versión de Windows de Pitón, perla o tu idioma favorito?Estos deberían ofrecer toda la funcionalidad que necesita.

Los archivos por lotes son los más portátiles, pero hacer cosas complicadas puede resultar difícil (muy difícil).

Powershell es increíblemente... um... poderoso, pero el dominio instalado en este momento es solo un poco más que el de aquellas personas a las que les gusta usar PowerShell y los servidores que administran.Si usted controla las máquinas en las que está escribiendo scripts y puede exigir que esté instalado PowerShell, PowerShell es el camino a seguir.De lo contrario, los archivos por lotes son la mejor manera.

Powershell te permite hacer cualquier cosa que se pueda hacer, pero algunas cosas serán más difíciles que otras :)

(En serio, si desea controlar una aplicación GUI de Windows desde una secuencia de comandos, tendrá muchos problemas a menos que la aplicación admita secuencias de comandos en sí, o desee comenzar a publicar mensajes en los controles de diálogo y raspar la pantalla del diálogo para verificar. para el éxito.)

Recomendaría "Tomar el mando" (JPSoft), que se parece más a "cmd.exe" que a PowerShell.Lo utilizamos aquí en ESSS desde hace años.

¿CScript?Recuerdo haber visto algo así.

Powershell es bueno, pero es algo adicional que debes instalar.No es estándar en casi ninguna instalación de Windows.Entonces, si es solo para su propio uso, entonces powershell debería estar bien.Si necesita que los scripts se ejecuten en las computadoras de la población general, por ejemplo, como parte de un software que está produciendo, puede que no sea la mejor opción.

Si está de acuerdo con algo adicional que debe instalar, es posible que desee consultar cygwin.Esto le permite tener una línea de comando bash de Linux completa y todas las herramientas asociadas a su disposición.

Si necesita algo incluido en una instalación predeterminada de Windows.Está la línea de comando de Windows (cmd.exe).El cual tiene algunas funcionalidades, pero es muy deficiente en comparación con lo que está disponible en Linux.El otro problema, probablemente peor, es que no hay mucha documentación disponible.

Quizás también te interese VB Script (llama lejos).VB Script debería funcionar en casi cualquier instalación estándar reciente de Windows y es mucho más funcional que la línea de comandos.

Tengo instalado cygwin, por lo que puedo ejecutar scripts de bash shell para mis necesidades de automatización.Además, cuando necesito que cosas se ejecuten de forma menos nativa en Windows, uso una combinación de lote + jscript (se ejecuta en cmdline si tiene Visual Studio.Net instalado, simplemente llame a "cscript XXX.js").

La creación de guiones es una maravilla.

Personalmente me gusta escribir algunos pequeños archivos por lotes malvados.Puede encontrar un programa de línea de comandos para hacer casi cualquier cosa.Prefiero los archivos por lotes principalmente porque son portátiles de una máquina a otra con un zip como máximo y algunas herramientas Unix (SSED, GREP, GAWK).hay una línea de comandos REG.Exe que incluso puede realizar cambios y lecturas en el Registro.Puede analizar la salida de los comandos con un bucle "FOR /f".

PowerShell tiene más...errar.. Fuerza (En la segunda publicación escribí eso, pero no puedo evitarlo).

Si desea ver la automatización de Windows, consulte AutoHotKey.

¿Qué estás intentando automatizar?Eso puede ayudarnos a delimitar lo que sería útil.

  • josh

EDITAR:para que conste, escribí eso al mismo tiempo que @jameso. Si alguien en el trabajo no me hubiera hecho una pregunta, es posible que hubiera publicado antes que él.Sin embargo, me estremecí un poco por la similitud de la publicación...

Powershell puede hacer lo que necesita.

manipulaciones de archivos

Este Así que publicar responde cómo puede reemplazar una cadena en su archivo de texto.Pégalo aquí para facilitar la referencia:

(Get-Content c:\temp\test.txt).replace('[MYID]', 'MyValue') | Set-Content c:\temp\test.txt

Hay otras cosas que puedes hacer, como copiar archivos y carpetas.Puedes encontrar más información en el Documentación de Windows Powershell

edición de registro

Esto se puede hacer fácilmente usando Powershell.Aquí hay un código de muestra de Blogs de desarrolladores de Microsoft:

Set-ItemProperty -Path HKCU:\Software\hsg -Name newproperty -Value anewvalue

Ayer podría haberte reparado esto ;)

¿Cuáles son las herramientas/lenguajes para las secuencias de comandos de Windows Shell?

Se leería mejor como

¿Qué herramientas e idiomas están disponibles para Windows Shell Scripting?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top