para for emulador consola commands best unix shell powershell

unix - for - ¿Está PowerShell listo para reemplazar mi shell Cygwin en Windows?



linux commands windows 10 (18)

grep

-match operador de cmdlet y -match Select-String -match funciona con expresiones regulares. También puede utilizar directamente el soporte de expresiones regulares de .NET para una funcionalidad más avanzada.

ordenar

Sort-Object es más poderoso (de lo que recuerdo la sort * nix). Permitiendo la ordenación multinivel en expresiones arbitrarias. Aquí el mantenimiento de PSH del tipo subyacente ayuda; por ejemplo, una propiedad DateTime se ordenará como DateTime sin tener que garantizar el formateo en un formato ordenable.

uniq

Select-Object -Unique

Perl (¿qué tan cerca llega PowerShell de las capacidades de Perl?)

En términos de la amplitud de Perl de bibliotecas de soporte específicas de dominio: en ninguna parte (todavía).

Para la programación general, PSH es ciertamente más cohesivo y consistente, y más fácil de extender. La única brecha para el munging de texto es algo equivalente al operador de perl ..

awk

Ha pasado el tiempo suficiente desde que uso awk (debe ser> 18 años, ya que más tarde usé perl), así que no puedo comentar.

sed

[Véase más arriba]

archivo (el comando que da información de archivo)

La fortaleza de PSH aquí no es tanto de lo que puede hacer con los objetos del sistema de archivos (y obtiene información completa aquí, dir devuelve los objetos FileInfo o FolderInfo según corresponda) es que es el modelo completo del proveedor.

Puede tratar el registro, el almacén de certificados, SQL Server, el caché de RSS de IE, etc. como un espacio de objeto navegable por los mismos cmdlets que el sistema de archivos.

PSH es definitivamente el camino a seguir en Windows. MS lo ha hecho parte de sus requisitos para futuros productos que no son para el hogar. Por lo tanto, el soporte rico en Exchange, el soporte en SQL Server, esto solo va a expandirse.

Un ejemplo reciente de esto es el TFS PowerToys. Muchas operaciones de clientes TFS se realizan sin tener que iniciar tf.exe cada vez (lo que requiere una nueva conexión con el servidor TFS, etc.) y es notablemente más fácil de procesar los datos. Además de permitir un amplio acceso a toda la API del cliente TFS con un mayor detalle que el expuesto en Team Explorer de TF.exe.

Estoy debatiendo si debo aprender PowerShell o simplemente seguir con los scripts de Cygwin / Perl / scripts de shell de Unix, etc.

El beneficio de PowerShell sería que los compañeros de equipo que no tienen Cygwin podrían usar los scripts más fácilmente; sin embargo, no sé si realmente estaría escribiendo tantos scripts de propósito general, o si la gente incluso los usaría.

Los scripts de Unix son tan poderosos, ¿PowerShell se acerca lo suficiente como para justificar el cambio?

Estas son algunas de las cosas específicas (o equivalentes) que estaría buscando en PowerShell:

  • grep
  • ordenar
  • uniq
  • Perl (¿qué tan cerca llega PowerShell de las capacidades de Perl?)
  • AWK
  • sed
  • archivo (el comando que da información de archivo)
  • etc.

¿Por qué no usar ambos? Llame a los scripts de PowerShell en Cygwin como cualquier otro script interpretado como perl, etc.

Hago esto lo suficiente como para escribir https://bitbucket.org/jbianchi/powershell para un envoltorio de bash para llamar a powershell.exe en Cygwin. Puede usarse como Shebang como la primera línea de un script powershell.exe .ps1 (ya que powershell también usa "#" como comentario) Consulte https://bitbucket.org/jbianchi/powershell/wiki/Home para ver ejemplos.


Como alguien cuya carrera se centró en el desarrollo empresarial de Windows de 1997 a 2010, la respuesta obvia sería Powershell por todas las buenas razones dadas anteriormente (por ejemplo, es parte de la estrategia empresarial de MS; se integra bien con Windows / COM / .NET; y usa objetos en lugar de archivos proporciona un modelo de codificación "más rico"). Por esa razón, he estado usando y promocionando Powershell durante los últimos 2 años aproximadamente, con la creencia expresa de que estaba siguiendo la "Palabra de Bill".

Sin embargo, como pragmático, ya no estoy seguro de que Powershell sea una buena respuesta. Si bien es una excelente herramienta de Windows y proporciona un paso muy necesario para llenar el agujero histórico que es la línea de comandos de Windows, ya que todos observamos el control de MS en el deslizamiento informático del consumidor, parece cada vez más probable que MS tenga una gran batalla por delante para mantener su SO Tan importante para la empresa del futuro.

De hecho, dado que encuentro que mi trabajo es cada vez más en entornos heterogéneos, me parece mucho más útil usar scripts de bash en este momento, ya que no solo funcionan en Linux, Solaris y Mac OS X, sino que también funcionan con el Ayuda de Cygwin — en Windows.

Entonces, si cree en la creencia de que el futuro del sistema operativo es comercializado en lugar de monopolizado, entonces tiene sentido optar por una estrategia de herramientas de desarrollo ágil que se mantenga alejada de las herramientas propietarias cuando sea posible. Sin embargo, si ves que tu futuro está dominado por todo lo que es Redmond, entonces elige Powershell.


Como mis experimentos recientes me llevaron a profundizar en las llamadas de Powershell y .NET, debo decir que Powershell puede reemplazar a Cygwin y Unix shell. No estoy seguro de Perl, pero dado que tanto Powershell como Perl son Turing completos como lenguajes de programación, doy esto como un sí para reemplazar a Perl también. Una cosa que Powershell tiene por encima de Cygwin y bash ordinario bajo * nix, es su capacidad para realizar llamadas a archivos DLL de espacio aislado, manipular el sistema operativo mediante llamadas API directas, métodos WMI e incluso objetos COM. ¿Qué hay de lanzar IE a través del código, y luego hacer lo que quiera con su documento visualizado, emulando efectivamente un back-end para un servidor web? ¿Qué tal recopilar datos de servidores SQL y otros proveedores de datos, analizarlos y exportarlos como CSV, mensajes de correo, texto y, en realidad, cualquier tipo de formato de archivo existente y no existente? (Por supuesto, con las habilidades adecuadas para crear un archivo válido a partir de los datos recibidos, pero CSV está disponible) Y existe una seguridad adicional disponible a través de cmdlets y scripts firmados, políticas de grupo y políticas de ejecución que ayudan a evitar que se ejecuten códigos maliciosos en su sistema incluso si los ejecuta como administrador.

Acerca de qué comandos se implementan: la respuesta de Richard los enumera y la capacidad de Powershell de emular su funcionalidad ya.

Sobre si Powershell es fuerte para justificar el cambio, esto es más una cuestión de preferencia personal, aunque a medida que más y más servicios de Windows proporcionan cmdlets de Powershell para controlarlos, no usar Powershell con estos servicios presentes se considera un obstáculo. (El servidor Hyper-V es el principal servicio de este tipo, también brinda la capacidad de hacer más con los cmdlets de Powershell que con la GUI).

Probablemente esta respuesta llegue cinco años tarde, pero aún así, si alguien realiza tareas administrativas o secuencias de comandos generales de varias cosas en Windows, definitivamente debería intentar utilizar Powershell para sus propósitos.


Cuando compare PowerShell con la combinación Cygwin / Perl / Shell, tenga en cuenta que PowerShell solo representa la parte "Shell" de esa combinación.

Sin embargo, puede invocar cualquier comando de PowerShell tal como lo hace desde cmd.exe o Cygwin. No vuelve a implementar las funciones especificadas, y ciertamente no es comparable a Perl.

Es "solo" un shell, pero facilita la programación al proporcionar una interfaz cómoda para el universo .Net.

También tenga en cuenta que PowerShell requiere WinXP, Srv2003 o superior, lo que puede plantear un problema en función de su infraestructura de TI.

Actualizar:

No tenía idea de qué tipo de debate filosófico provocaría mi respuesta.

Publiqué mi respuesta en el contexto de la pregunta: Compare PowerShell con Cygwin y Perl y bash.

PowerShell es un shell, ya que no hace una diferencia sintáctica entre los comandos integrados, los comandos, las funciones del usuario y los comandos externos (.exe, .bat, .cmd). Solo los métodos de invocación .Net difieren al agregar un espacio de nombres o un objeto en la llamada.

Su capacidad de programación se deriva de .Net framework, no de nada específico del "lenguaje" de PowerShell.

Yo diría que creo que PowerShell es un "lenguaje de scripting" tan pronto como Bugzilla o MediaWiki se implementan como scripts de PowerShell que se ejecutan en un servidor web;)

Hasta entonces, disfruta de las comparisons .


He utilizado un poco de PowerShell para la automatización de scripts. Si bien es muy agradable que el entorno se haya pensado mucho más que shells de Unix, en la práctica, el uso de objetos en lugar de flujos de texto es mucho más torpe, y muchas de las instalaciones de Unix que se han desarrollado en los últimos 30 años Todavía faltan años.

Cygwin sigue siendo mi entorno de scripting de elección para los hosts de Windows. Ciertamente, supera las alternativas en términos de hacer las cosas.


Las herramientas son solo herramientas.
Ayudan o no lo hacen.
Necesitas ayuda o no la necesitas.

Si sabe que Unix y esas herramientas hacen lo que necesita que hagan en Windows, entonces es un tipo feliz y no hay necesidad de aprender PowerShell (a menos que quiera explorar).

Mi intención original era incluir un conjunto de herramientas Unix en Windows y terminar con eso (algunos de nosotros en el equipo tenemos antecedentes profundos de Unix y una buena dosis de respeto por esa comunidad). Lo que descubrí fue que esto no sucedió. Realmente ayuda mucho. La razón de esto es que awk / grep / sed no funciona en contra de COM, WMI, ADSI, el Registro, el almacén de certificados, etc. En otras palabras, UNIX es un ecosistema completo que se adapta a los archivos de texto. Como tal, las herramientas de procesamiento de texto son efectivamente herramientas de gestión. Windows es un ecosistema completamente diferente que se adapta a las API y los Objetos. Es por eso que inventamos PowerShell.

Lo que creo que encontrará es que habrá muchas ocasiones en las que el procesamiento de texto no obtendrá lo que desea en Windows. En ese momento, querrá recoger PowerShell. NOTA: no es un reparto de todo o nada. Dentro de PowerShell, puede llamar a sus herramientas de Unix (y usar su proceso de texto o el procesamiento de texto de PowerShell). También puedes llamar a PowerShell desde tus herramientas de Unix y obtener texto.

Una vez más, aquí no hay religión, nuestro objetivo es brindarle las herramientas que necesita para tener éxito. Es por eso que nos apasiona la retroalimentación. Díganos dónde nos estamos cayendo en el trabajo o dónde no tiene la herramienta que necesita, la pondremos en la lista y la pondremos en práctica. Con toda honestidad, nos estamos sacando de un agujero de 30 años, por lo que va a tomar un tiempo. Dicho esto, si selecciona la versión beta de Windows Server 2008 / R2 y / o las versiones beta de nuestros productos de servidor, creo que se sorprenderá de la rapidez con la que se llena ese agujero.

Con respecto al uso, hemos tenido más de 3.5 millones de descargas hasta la fecha. Eso no incluye a las personas que lo usan en Windows Server 2008 porque se incluye como un componente opcional y no necesita una descarga. V2 se enviará en todas las versiones de Windows. Estará en modo predeterminado para todas las ediciones, excepto el núcleo del servidor, donde es un componente opcional. Poco después del lanzamiento de Windows 7 / Windows Server 2008 R2, haremos que V2 esté disponible en todas las plataformas XP y superiores. En otras palabras, su inversión en aprendizaje se aplicará a una gran cantidad de máquinas / entornos.

Un último comentario. Si / cuando comienzas a aprender PowerShell, creo que estarás bastante feliz. Gran parte del diseño está muy influenciado por nuestros fondos de Unix, por lo que, si bien somos bastante diferentes, lo recogerás muy rápidamente (después de que te digas que no es Unix :-)). Sabemos que las personas tienen un presupuesto muy limitado para el aprendizaje, es por eso que somos muy estrictos en cuanto a la consistencia. Vas a aprender algo y luego lo usarás una y otra vez.

¡Experimentar! ¡Disfrutar! ¡Contratar!


Los cmdlets en powershell son muy agradables y funcionan de manera confiable. Su orientación hacia los objetos me atrae mucho ya que soy un desarrollador de Java / C #, pero no es en absoluto un conjunto completo. Dado que está orientado a objetos, se pierde una gran parte de la madurez del flujo de texto del conjunto de herramientas POSIX ( awk y sed por nombrar algunos).

¡La mejor respuesta que he encontrado al dilema de amar las técnicas de OO y amar la madurez en las herramientas POSIX es usar ambas! Un gran aspecto de Powershell es que hace un trabajo excelente para canalizar objetos a flujos estándar. Powershell utiliza de forma predeterminada una canalización de objetos para transportar sus objetos. Estas no son las secuencias estándar (salida estándar, error estándar y entrada estándar). Cuando Powershell necesita pasar la salida a un proceso estándar que no tiene una canalización de objetos, primero convierte los objetos en una secuencia de texto. Como lo hace tan bien, ¡Powershell es un lugar excelente para alojar herramientas POSIX!

El mejor conjunto de herramientas POSIX es GnuWin32 . La instalación lleva más de 5 segundos, pero vale la pena y, por lo que sé, no modifica su sistema (registro, c:/windows/* carpetas, etc.), excepto la copia de archivos a directorios que usted especifique. Esto es muy bueno porque si coloca las herramientas en un directorio compartido, muchas personas pueden acceder a ellas simultáneamente.

Instrucciones de instalación de GnuWin32

Descargue y ejecute el GnuWin32 (es del sitio de SourceForge ) apuntándolo a un directorio adecuado (usaré c:/bin ). GetGnuWin32 un directorio GetGnuWin32 en el que ejecutará download.bat , luego install.bat (sin parámetros), después de lo cual, habrá un directorio c:/bin/GetGnuWin32/gnuwin32/bin que es la carpeta más útil que Ha existido alguna vez en una máquina con Windows. Agregue ese directorio a su ruta y estará listo para comenzar.


Muchas respuestas geniales, aquí está mi opinión. PS está listo si estás ... Ejemplo

grep = " Select-String -Pattern "

sort = "Sort-Object"

uniq = " Get-Unique "

file = " Get-Item "

cat = " Get-Content "

Perl / Awk / Sed no son comandos, pero las utilidades son difíciles de comparar, pero puedes hacer casi todo en Powershell.


No he visto que el Powershell realmente haya despegado, al menos no todavía. Por lo tanto, puede que no valga la pena el esfuerzo de aprenderlo a menos que los demás miembros de su equipo ya lo sepan.

Para su situación, podría estar mejor con un lenguaje de scripting que otros podrían retrasar, Perl como usted mencionó, u otros como Ruby o Python.

Creo que mucho de eso depende de lo que necesites hacer. Personalmente, he estado usando Python para mis propios scripts personales, pero sé que cuando empiezo a escribir algo que nunca podré transmitir, así que trato de no hacer nada demasiado revolucionario.


No soy un usuario de PowerShell con mucha experiencia de ninguna manera, pero el poco de lo que estuve expuesto me impresionó mucho. Puede encadenar los cmdlets incorporados para hacer casi cualquier cosa que pueda hacer en un indicador de Unix, y hay algunas ventajas adicionales para hacer cosas como exportar a CSV, tablas HTML y para obtener información más detallada de sys-admin. trabajos. Y si realmente necesitas algo como sed, siempre hay UnixUtils o GnuWin32 , que puedes integrar con Powershell con bastante facilidad.

Como usuario de Unix desde hace mucho tiempo, sin embargo, tuve algunos problemas para acostumbrarme al esquema de denominación de comandos, y ciertamente me habría beneficiado más si supiera más .NET.

Básicamente, digo que vale la pena aprenderlo si la única versión de Windows no plantea un problema.


PowerShell es muy poderoso, más poderoso que las incorporaciones estándar de los shells de Unix (pero solo porque incluye gran parte de la funcionalidad que generalmente se usa para subprogramas). También, considere que puede escribir applets en cualquier lenguaje .NET, incluyendo IronPython, IronRuby, PerlNet, etc. o simplemente puede llamar a sus comandos cygwin desde PowerShell, ignorando todas las funciones adicionales y funcionará de manera similar a bash, korn, o lo que sea...



Solo recientemente empecé a incursionar en PS con algún grado de seriedad. Aunque durante los últimos siete años he trabajado en un entorno casi exclusivamente basado en Windows, provengo de un fondo de Unix y me encuentro constantemente intentando "Unix-fy" mi experiencia de interacción en Windows. Es frustrante por lo menos.

Es justo comparar PS con algo como Bash , tcsh o zsh ya que las utilidades como grep , sed , awk , find , etc. no son, estrictamente hablando, parte de la shell; Sin embargo, siempre serán parte de cualquier entorno Unix. Dicho esto, un comando de PS como Select-String tiene una función muy similar a grep y se incluye como un módulo central en PS ... así que las líneas pueden ser un poco borrosas.

Creo que la clave es la cultura , y el hecho de que los respectivos conjuntos de herramientas incorporarán sus respectivas culturas:

  • Unix es una cultura basada en archivos (en general, no Unicode) basada en texto . Los archivos de configuración son casi exclusivamente archivos de texto . Windows, por otro lado, siempre ha sido mucho más estructurado con respecto a los formatos de configuración; las configuraciones generalmente se guardan en bases de datos propietarias (por ejemplo, el registro de Windows) que requieren herramientas especializadas para su administración.
  • La interfaz administrativa de Unix (y, durante muchos años, el desarrollo) ha sido tradicionalmente la línea de comando y el terminal virtual. Windows comenzó como una GUI y las funciones administrativas solo han comenzado recientemente a dejar de estar basadas exclusivamente en GUI. Podemos esperar que la experiencia de Unix en la línea de comando sea más rica y madura, dada la ventaja significativa que tiene en PS , y mi experiencia coincide con esto. Sobre esto, en mi experiencia:

    • La experiencia administrativa de Unix está orientada a facilitar las cosas en una cantidad mínima de pulsaciones de teclas; Esto es probablemente como resultado de la situación histórica de tener que administrar un servidor a través de una conexión de marcación lenta de 9600 baudios. Ahora PS tiene alias que ayudan mucho a superar el estándar Verb-Noun bastante detallado, pero conocer esos alias es un poco molesto (cualquiera sabe algo mejor que: alias | where {$_.ResolvedCommandName -eq "<command>"} ?).

      Un ejemplo de la rica forma en que la historia puede ser manipulada:

      iptables comandos de iptables menudo son largos y los que se repiten con pequeñas diferencias serían un dolor si no fuera por una de las muchas características de la manipulación del historial incorporada en Bash , por lo que insertar una regla de iptables como la siguiente:

      iptables -I camera-1-internet -s 192.168.0.50 -m state --state NEW -j ACCEPT

      una segunda vez para otra cámara (" camera-2 "), es solo un caso de emisión:

      !!:s/-1-/-2-/:s/50/51

      que significa "ejecutar el comando anterior, pero sustituya -1- con -2- y 50 con 51 .

    • La experiencia Unix está optimizada para teclistas táctiles; Uno puede hacer prácticamente todo sin salir de la posición "home". Por ejemplo, en Bash , usando los enlaces de teclas de Emacs (sí, Bash también admite enlaces de vi ), recorrer el historial se realiza usando Ctrl-P y Ctrl-N mientras se mueve al principio y el final de una línea se hace usando Ctrl- A y Ctrl-E respectivamente ... y definitivamente no termina ahí. Prueba incluso la navegación más simple en la consola PS sin moverte de la posición inicial y estás en problemas.

    • Las cosas simples como la paginación versátil (ala less ) en Unix no parecen estar disponibles de manera inmediata en PS, lo cual es un poco frustrante, y tampoco existe una experiencia de editor enriquecida. Por supuesto, siempre se pueden descargar herramientas de terceros que llenarán esos vacíos, pero seguro que sería bueno si estas cosas estuvieran "ahí" como si estuvieran en prácticamente cualquier sabor de Unix.
  • La cultura de Windows, al menos en términos de API del sistema, está impulsada en gran medida por los marcos de soporte, a saber, COM y .NET , ambos de los cuales están altamente estructurados y basados ​​en objetos. Por otro lado, el acceso a las API de Unix ha sido tradicionalmente a través de una interfaz de archivos ( /dev y /proc ) o llamadas de biblioteca de estilo C (no orientadas a objetos). No es de extrañar entonces que las experiencias de scripting coincidan con sus respectivos paradigmas de sistema operativo. PS está estructurado por naturaleza (todo es un objeto) y está basado en archivos Bash -and-friends. La API estructurada que está a disposición de un programador de PS es vasta (esencialmente coincide con la inmensidad del conjunto existente de interfaces estándar COM y .NET).

En resumen, aunque las capacidades de scripting de PS son posiblemente más potentes que Bash (especialmente si se considera la disponibilidad de .NET BCL ), la experiencia interactiva es significativamente más débil, especialmente si se trata de un sistema totalmente controlado por teclado. , la perspectiva basada en la consola (como muchos jefes de Unix son).


TL; DR: no odio Windows o Powershell, simplemente no puedo hacer nada en Windows o en Powershell.

Personalmente, todavía me parece que PowerShell es decepcionante.

  • la finalización de la pestaña de las rutas del directorio no se compone, lo que requiere que el usuario ingrese un separador de ruta después de cada terminación del nombre.
  • Todavía siento que Windows ni siquiera tiene el concepto de ruta o de lo que es una ruta, sin un indicador de inicio de usuario accesible ~/ @environment://somejibberish/%user_home% de algo de @environment://somejibberish/%user_home%
  • NTFS sigue siendo un desastre y aparentemente siempre lo será, buena suerte navegando.

  • Interfaz cmd-esque, el dinosaurio cmd.exe aún es visible en Powershell, edit->mark siendo la única forma de copiar información, y copiando solo en forma de bloques rectangulares de espacio de terminal visible. y edit->paste sigue siendo la única forma de pegar cadenas en el terminal.

  • Pintarlo de azul no lo hace más atractivo. Sin embargo, no me importa que los desarrolladores de MS tengan un gusto por el color.

  • Windows siempre se abre en la esquina superior izquierda de la pantalla. Para alguien que usa barras de tareas verticales, esto es increíblemente molesto, especialmente si se considera que la barra de tareas de Windows cubrirá la única esquina de la ventana que da acceso a la función de copiar / pegar.

No puedo hablar mucho sobre la base de las herramientas que incluye Windows. Siendo que hay un conjunto completo de herramientas cli de código abierto, con licencia libre, y powershell se envía, por lo que sé, ninguna de ellas es una decepción total.

  • powershell wget toma argumentos aparentemente incomparables para gnu wget, gracias por un destello de esperanza, de una manera inútil.
  • powershell posix no es compatible con bash, particularmente el operador && no se maneja, lo que hace que el comando condicional más simple no sea una cosa.

No sé hombre, le di una oportunidad, realmente lo hice; Todavía trato de intentarlo con la esperanza de que la próxima vez que lo abra sea menos inútil. No puedo hacer nada en PowerShell, y puedo hacer cosas con un proyecto real para llevar las herramientas de GNU a Windows.

MySysGit me da el indicador de dinosaurio cmd.exe con un par de herramientas gnu, aún muy decepcionante, pero en la última ruta funciona. y el comando git se ejecutará en gitBash

Mintty for MySysGit proporciona la interfaz de Cygwin sobre el entorno de mysysgit, haciendo que copiar y pegar sea una cosa. (seleccione para copiar (mouse), shift + ins para pegar, qué moderno ...) sin embargo, cosas como git push están rotas en Mintty.

No me refiero a despotricar, pero sigo teniendo grandes problemas con la facilidad de uso de la línea de comandos en Windows, incluso con herramientas como Cygwin.

PD Solo porque se puede hacer algo en powershell, no lo hace utilizable , la facilidad de uso es más profunda que la capacidad y es en lo que tiendo a centrarme cuando trato de usar un producto como consumidor.


Me pareció que la programación de PowerShell no valía la pena.

Tengo varios años de experiencia con shell scripting bajo Unix, pero me resultó enormemente difícil hacer mucho con PowerShell.

Parece que muchas funciones requieren que interrogue la Interfaz de administración de Windows y emita comandos similares a SQL para obtener la información que necesita.

Por ejemplo, quería escribir un script para eliminar todos los archivos con un sufijo específico de un árbol de directorios. Bajo Unix, esto sería un simple ...

find . -name /*.xyz -exec rm {} /;

Después de un par de horas dicking alrededor con Scripting.FileSystemObjecty WScript.Shelly la emisión de "SELECT * FROM Win32_ShortcutFile donde unidad = ''" & Drive & '' ''Y Path ='''' & SearchFolder & "''", finalmente me di por vencido y conformé del Explorador de Windows Búsqueda de mando y solo hazlo manualmente Probablemente haya alguna forma de hacer lo que quería, pero no vi nada obvio y todos los ejemplos en el sitio de MSDN eran tan triviales que carecían de valor.

EDICIÓN Heh, por supuesto, tan pronto como escribí esto, hurgué un poco más y encontré lo que me faltaba: la -recurseopción para el comando de eliminar elemento es defectuosa (se revela si se usa get-help remove-item -detailed).

Había estado probando "remove-item -filter ''* .xyz'' -recurse" y no estaba funcionando, así que me rendí.

Resulta que necesitas usar get-childitem -filter ''*.xyz'' -recurse | remove-item


En un par de líneas, Cygwin y Powershell son herramientas diferentes, sin embargo, si tiene Cygwin instalado, puede ejecutar los ejecutables de Cygwin dentro de una sesión de Powershell. Me he acostumbrado tanto a Powershell que ahora ya no uso grep, sort, awk, etc. En Powershell hay muchas alternativas integradas, y si no, puedes encontrar un cmdlet por ahí.

La herramienta principal que utilizo es ssh.exe pero dentro de una sesión de Powershell.

Funciona genial.