Ich versuche, einen dynamischen Skriptblock zu erstellen, damit ich Variablen im Skriptblock verwenden kann.Seltsames Problem mit Skriptblock in Powershell ISE: Einfügen der Zeichenfolgendarstellung in Notepad zeigt unerwartetes Zeichen
Dies ist mein Code:
$Servers = "server1", "server2"
$Command = "c:\plink -t [email protected]" + $Servers[0] + " -pw 'password'"
$Command = [Scriptblock]::Create($Command)
$Command2 = {c:\plink -t [email protected] -pw 'password'}
$command
$command2
das Skripts in der Powershell ISE Laufen produziert, was ich erwarten würde:
c:\plink -t [email protected] -pw 'password'
c:\plink -t [email protected] -pw 'password'
Both $ Befehl und command2 $ vorhanden identischer Ausgang, und beide sind gültige Skriptblöcke, wenn Get-Member -Verbose aktiviert ist.
Mein Problem ist, dass das Ausführen der ersten Zeile einen Verbindungsfehler erzeugt, wo die identische Ausgabe von $ command2 gut funktioniert und sich mit dem Server verbindet.
Blick in die Ausstellung, fand ich, dass das Kopieren/Einfügen der beiden erzeugten Linien im Ausgabefenster der ISE auf einen Notizblock enthüllt das Problem:
Wie Sie im JPG sehen können, ein ungerades Zeichen wird direkt nach dem Zeichen '@' hinzugefügt, wodurch der Befehl fehlschlägt ...
Irgendeine Idee, warum dies passiert (und wie ich es lösen kann)?!?
Ich sehe, was du meinst, der hinzugefügte Zeichenwert 8 vor dem Namen server1 ... Woher zum Teufel kam das, lol! Danke für deine Hilfe: Ich hätte das nie gefunden (Da es im ISE nicht sichtbar ist! – Fredster
Zeichenwert 8, das ist ein [Rückschritt] (http://www.asciitable.com/) - wie geht es dir zufällig? bekomme ich das in einer Schnur? – TessellatingHeckler
Ich habe überhaupt keine Ahnung: Ich habe mit diesem seit einigen Tagen gekämpft ... Nur nach dem Einfügen fand ich den seltsamen Charakter ... – Fredster