Tor zum eingeben:Powershell, wie mehrere Linien auf der Kommandozeile
ich eine bin versucht, eine Lösung zu finden, die mir erlauben würde eine Base64-codierte Zeichenfolge eingeben, die mehrere Zeilen sein kann. Das Ziel besteht darin, die Zeichenfolge zu dekodieren und die Ausgabe in der Powershell-Konsole zurückzugeben. Ursprünglich habe ich einen WinForms-Dialog aufgerufen, dies ist jedoch mit implizitem Remoting nicht möglich.
Dies ist, was ich bisher:
function Get-Base64 {
Write-Host 'Decode:' -ForegroundColor Yellow -NoNewline
$data = Read-Host
$decode = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("$data"))
$decode.ToString()
}
bekomme ich folgende Fehlermeldung, wenn mehrere Zeilen eingeben:
PS > Get-Base64
Decode)ZXZhbChmdW5jdGlvbihwLGEsYyxrLGUsZCl7ZT1mdW5jdGlvbihjKXtyZXR1cm4oYzxhPycnOmUo
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(
PS > cGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50
cGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50 : The term 'cGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyOSk6Yy50' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ cGFyc2VJbnQoYy9hKSkpKygoYz1jJWEpPjM1P1N0cmluZy5mcm9tQ2hhckNvZGUoYysyO ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (cGFyc2VJbnQoYy9...GUoYysyOSk6Yy50:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Sie können sehen, dass es den ersten Teil decodiert dann in der nächsten Zeile, lesen Sie es als Cmdlet.
Frage:
Wie kann ich Kollisionen vermeiden Formatierung mehrere Zeilen zu entschlüsseln?