Je voudrais sortir des variables et des valeurs dans un script PowerShell en configurant des indicateurs et en voyant les données se matriculer tout au long du script.
Comment pourrais-je faire ça?
Par exemple, quel serait l'équivalent PowerShell du code PHP suivant?
echo "filesizecounter: " . $filesizecounter
powershell
phill
la source
la source
Réponses:
Il existe plusieurs façons:
Write-Host
: Écrire directement sur la console, non inclus dans la sortie fonction / applet de commande. Permet de définir la couleur du premier plan et de l'arrière-plan.Write-Debug
: Écrivez directement sur la console, si elle est$DebugPreference
définie sur Continuer ou Arrêter.Write-Verbose
: Écrivez directement sur la console, si elle est$VerbosePreference
définie sur Continuer ou Arrêter.Ce dernier est destiné à des informations supplémentaires facultatives,
Write-Debug
pour le débogage (semble donc convenir dans ce cas).Supplémentaire : Dans PSH2 (au moins), les scripts utilisant la liaison d'applet de commande obtiendront automatiquement les paramètres
-Verbose
et-Debug
switch, activant localementWrite-Verbose
etWrite-Debug
(c'est-à-dire remplaçant les variables de préférence) comme le font les applets de commande et les fournisseurs compilés.la source
Powershell a un écho de mappage d'alias
Write-Output
, donc:echo "filesizecounter : $filesizecounter"
la source
echo
est un aliasWrite-Output
selon TechNet de Microsoft et discuté iciPowerShell interpole, n'est-ce pas?
En PHP
peut également s'écrire:
Dans PowerShell, quelque chose comme cela devrait répondre à vos besoins:
la source
la source
De loin, le moyen le plus simple de faire écho dans PowerShell est simplement de créer l'objet chaîne et de laisser le pipeline le générer:
Bien sûr, vous abandonnez une certaine flexibilité lorsque vous n'utilisez pas les méthodes Write- *.
la source
echo est un alias de Write-Output bien qu'il ressemble à Write-Host .
Ce n'est pas Quelle est la différence entre echo et Write-Host dans PowerShell? .
echo est un alias pour Write-Output, qui écrit dans le flux de sortie Success. Cela permet à la sortie d'être traitée via des pipelines ou redirigée vers des fichiers. Write-Host écrit directement sur la console, de sorte que la sortie ne peut plus être redirigée / traitée.
la source
L'hôte d'écriture fonctionne bien.
la source
Je ne sais pas s'il est sage de le faire, mais vous pouvez simplement écrire
Et il devrait produire:
la source
"filesizecounter: $filesizecounter"
est encore plus court.PowerShell possède des alias pour plusieurs commandes courantes comme
echo
. Tapez ce qui suit dans PowerShell:pour obtenir une réponse:
Même Get-Alias a un alias
gal -> Get-Alias
. Vous pouvez écriregal echo
pour obtenir l'alias deecho
.D'autres alias sont répertoriés ici: 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
la source
Essayez
Get-Content .\yourScript.PS1
et vous verrez le contenu de votre script.vous pouvez également insérer cette ligne dans votre code de script:
....
la source
Il convient également de mentionner que Set-PSDebug est similaire à la
echo on
commande batch old-school :Cette commande entraînera l'affichage de chaque ligne du script en cours d'exécution:
la source