Me gustaría generar variables y valores en un script de PowerShell configurando banderas y viendo que los datos se matriculan en todo el script.
¿Cómo haría esto?
Por ejemplo, ¿cuál sería el equivalente de PowerShell al siguiente código PHP?
echo "filesizecounter: " . $filesizecounter
powershell
phill
fuente
fuente
Respuestas:
Hay varias formas:
Write-Host
: Escriba directamente en la consola, no incluido en la salida de función / cmdlet. Permite establecer el color de primer plano y de fondo.Write-Debug
: Escriba directamente en la consola, si está$DebugPreference
configurado en Continuar o Detener.Write-Verbose
: Escriba directamente en la consola, si está$VerbosePreference
configurado en Continuar o Detener.Este último está destinado a información adicional opcional,
Write-Debug
para depuración (por lo que parece encajar en este caso).Adicional : en PSH2 (al menos) los scripts que usan el enlace de cmdlet obtendrán automáticamente los parámetros
-Verbose
y-Debug
cambiarán, habilitando localmenteWrite-Verbose
yWrite-Debug
(es decir, anulando las variables de preferencia) como lo hacen los cmdlets y proveedores compilados.fuente
Powershell tiene un eco de mapeo de alias para
Write-Output
, entonces:echo "filesizecounter : $filesizecounter"
fuente
echo
es un aliasWrite-Output
según TechNet de Microsoft y discutido aquíPowerShell interpola, ¿no es así?
En PHP
también se puede escribir como:
En PowerShell, algo como esto debería satisfacer sus necesidades:
fuente
fuente
Con mucho, la forma más fácil de hacer eco en PowerShell es crear el objeto de cadena y dejar que la tubería lo muestre:
Por supuesto, renuncia a cierta flexibilidad cuando no utiliza los métodos Write- *.
fuente
echo es un alias de Write-Output aunque se ve igual que Write-Host .
No lo es ¿Cuál es la diferencia entre echo y Write-Host en PowerShell? .
echo es un alias para Write-Output, que escribe en la secuencia de salida Success. Esto permite que la salida se procese a través de tuberías o se redirija a archivos. Write-Host escribe directamente en la consola, por lo que la salida ya no se puede redirigir / procesar.
fuente
El host de escritura funciona bien.
fuente
No sé si es aconsejable hacerlo, pero puedes escribir
Y debería generar:
fuente
"filesizecounter: $filesizecounter"
Es aún más corto.PowerShell tiene alias para varios comandos comunes como
echo
. Escriba lo siguiente en PowerShell:para obtener una respuesta:
Incluso Get-Alias tiene un alias
gal -> Get-Alias
. Podrías escribirgal echo
para obtener el aliasecho
.Aquí se enumeran otros alias: https://docs.microsoft.com/en-us/powershell/scripting/learn/using-familiar-command-names?view=powershell-6
cat dir mount rm cd echo move rmdir chdir erase popd sleep clear h ps sort cls history pushd tee copy kill pwd type del lp r write diff ls ren
fuente
Inténtalo
Get-Content .\yourScript.PS1
y verás el contenido de tu guión.También puede insertar esta línea en su código de script:
....
fuente
También debe mencionarse que Set-PSDebug es similar al
echo on
comando por lotes de la vieja escuela :Este comando dará como resultado que se muestren todas las líneas del script de ejecución:
fuente