it-swarm.com.de

Echoäquivalent in PowerShell zum Testen von Skripten

Ich möchte Variablen und Werte in einem PowerShell Skript ausgeben, indem ich Flags setze und sehe, dass die Daten im gesamten Skript immatrikuliert sind.

Wie würde ich das machen?

Was wäre beispielsweise die PowerShell, die dem folgenden PHP Code entspricht?

echo "filesizecounter: " . $filesizecounter 
198
phill

Es gibt verschiedene Möglichkeiten:

Write-Host : Direkt in die Konsole schreiben, nicht in der Funktions-/Cmdlet-Ausgabe enthalten. Ermöglicht das Einstellen der Vordergrund- und Hintergrundfarbe.

Write-Debug : Schreiben Sie direkt in die Konsole, wenn $DebugPreference auf Continue oder Stop setzen.

Write-Verbose : Schreiben Sie direkt in die Konsole, wenn $VerbosePreference auf Continue oder Stop setzen.

Letzteres ist für zusätzliche optionale Informationen vorgesehen, Write-Debug zum Debuggen (scheint also in diesem Fall zu passen).

Zusätzliches : In PSH2 erhalten (mindestens) Skripte mit Cmdlet-Bindung automatisch das -Verbose und -Debug Parameter wechseln, lokal aktivieren Write-Verbose und Write-Debug (d. h. Überschreiben der Präferenzvariablen), wie dies kompilierte Cmdlets und Provider tun.

245
Richard

PowerShell hat ein Alias-Mapping-Echo auf Write-Output, damit:

echo "filesizecounter : $filesizecounter"

103
Justin R.

PowerShell interpoliert, nicht wahr?

In PHP

echo "filesizecounter: " . $filesizecounter 

kann auch geschrieben werden als:

echo "filesizecounter: $filesizecounter" 

In PowerShell sollte so etwas Ihren Anforderungen entsprechen:

Write-Host "filesizecounter: $filesizecounter"
26
John T
Write-Host "filesizecounter : " $filesizecounter 
22
aphoria

Der mit Abstand einfachste Weg, in Powershell wiederzugeben, besteht darin, das Zeichenfolgenobjekt zu erstellen und es von der Pipeline ausgeben zu lassen:

$filesizecounter = 8096
"filesizecounter : $filesizecounter"

Natürlich verzichten Sie auf Flexibilität, wenn Sie die Write- * -Methoden nicht verwenden.

13
Goyuix

echo ist ein Alias ​​für Write-Output , obwohl es dasselbe aussieht wie Write-Host .

Es ist nicht Was ist der Unterschied zwischen Echo und Write-Host in PowerShell?.

echo ist ein Alias ​​für Write-Output, der in den Success-Ausgabestream schreibt. Dadurch kann die Ausgabe über Pipelines verarbeitet oder in Dateien umgeleitet werden. Write-Host schreibt direkt in die Konsole, sodass die Ausgabe nicht weitergeleitet/verarbeitet werden kann.

9
Paul Fijma

Der Write-Host funktioniert einwandfrei.

$Filesize = (Get-Item $filepath).length;
Write-Host "FileSize= $filesize";
7
ali Darabi

Ich weiß nicht, ob es sinnvoll ist, aber Sie können einfach schreiben

"filesizecounter: " + $filesizecounter

Und es sollte ausgeben:

filesizecounter: value

4
Peter

Versuchen Get-Content .\yourScript.PS1 und Sie sehen den Inhalt Ihres Skripts.

sie können auch diese Zeile in Ihren Scrip-Code einfügen:

get-content .\scriptname.PS1
script code
script code

....

2
Luis