Necesito saber cuántas sustituciones ha realizado Powershell al utilizar el operador -replace
o el método Replace()
. O, si eso no es posible, si hizo algún reemplazo.Powershell, ¿cuántos reemplazos hizo usted?
Por ejemplo, en Perl, porque la operación de sustitución devuelve el número de sustituciones realizadas, y el cero es falso mientras no nulo es cierto en un contexto booleano, se puede escribir:
$greeting = "Hello, Earthlings";
if ($greeting ~= s/Earthlings/Martians/) { print "Mars greeting ready." }
Sin embargo, con Powershell el operador y el método devuelven la nueva cadena. Parece que el operador proporciona cierta información adicional, si uno sabe cómo solicitarla (por ejemplo, los grupos capturados se almacenan en una nueva variable que crea en el alcance actual), pero no puedo averiguar cómo obtener un conteo o valor de exito
Podría simplemente comparar los valores de antes y después, pero parece totalmente ineficiente.
gran solución! –
Esto no funciona para mí en PS 3/Windows 8. El reemplazo funciona, pero el recuento de $ es 0. Sin embargo, SÍ funciona cuando ejecuto la emulación PS 2 (a través de powershell -versión 2). – bart
Descubrí que esto se debe a un cambio documentado en las notas de la versión de Windows Management Framework 3: "Los bloques de scripts ejecutados como delegados se ejecutan en su propio ámbito". Hacer $ count global resuelve el problema. – bart