Je m'amuse avec des scripts PowerShell scripts et ils fonctionnent très bien. Cependant, je me demande s'il existe un moyen d'afficher également toutes les commandes qui ont été exécutées, comme si vous les tapiez manuellement vous-même. Cela serait similaire à "echo on" dans les fichiers batch. J'ai regardé les arguments de la ligne de commande PowerShell, les cmdlets, mais je n'ai rien trouvé d'évident. Je vous remercie de votre attention.
Réponses
Trop de publicités?La commande suivante affiche chaque ligne de script dans Write-Debug-
Set-PSDebug -Trace 1
から man Set-PSDebug
Lorsque le paramètre Trace est défini sur 1, chaque ligne de script est tracée au fur et à mesure de son exécution. qu'elle est exécutée. Lorsque le paramètre est fixé à 2, les affectations de variables, les appels de fonction et les appels de script sont également tracés. Si le paramètre Step est spécifié, un message d'avertissement vous est envoyé avant chaque ligne du fichier script est exécutée.
Moche :
PS > get-content foo.ps1|foreach-object{$_;invoke-expression "$_"}
$procs=get-process powershell
foreach($proc in $procs){$proc.processname}
powershell
PS > get-content foo.ps1
$procs=get-process powershell
foreach($proc in $procs){$proc.processname}
PS >
Le problème avec ce qui précède est que si vous avez des commandes sur plusieurs lignes comme celle-ci :
foreach($proc in $procs){
$proc.processname
}
Ce qui précède échouera avec mon exemple ci-dessus s'il est placé dans foo.ps1 avec cette structure...