Powershell如何在命令行上输入多行
目标:Powershell如何在命令行上输入多行,powershell,Powershell,目标: function Get-Base64 { Write-Host 'Decode:' -ForegroundColor Yellow -NoNewline $data = Read-Host $decode = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("$data")) $decode.ToString() } PS > Get-Base64 Decode)ZXZhbChm
function Get-Base64 {
Write-Host 'Decode:' -ForegroundColor Yellow -NoNewline
$data = Read-Host
$decode = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("$data"))
$decode.ToString()
}
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
我试图找到一个解决方案,允许我输入一个可以是多行的Base64编码字符串。目标是解码字符串并在powershell控制台中获得返回的输出。最初,我称之为WinForms对话,但是,这在隐式远程处理中是不可能的
这就是我目前的情况:
function Get-Base64 {
Write-Host 'Decode:' -ForegroundColor Yellow -NoNewline
$data = Read-Host
$decode = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("$data"))
$decode.ToString()
}
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
输入多行时,我收到以下错误消息:
function Get-Base64 {
Write-Host 'Decode:' -ForegroundColor Yellow -NoNewline
$data = Read-Host
$decode = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("$data"))
$decode.ToString()
}
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
PS>Get-Base64
解码)ZXZHBCHMDW5JDGLVBIHWLGESYXRLGUSCL7ZT1MDW5JDGLVBIHJKXTYZXR1CM4OYZXHYCNOMUO
eval(function(p,a,c,k,e,d){e=function(c){return(c cgfyc2vjbnqoyy9hkpkygoyz1jweppjm1p1n0cmluzy5mcm9tq2hhcknvzguoyysk6yy50
CGFYC2VJBNQOYY9HKSKPKYGOYZ1JJWEPPJM1P1N0CMLUZY5MCM9TQ2HHCKNVZGUYYSYOSK6YY50:术语“CGFYC2VJBNQOYY9HKSKPKYGOYZ1JWEPPJM1P1N0CMLUZY5MCM9TQ2HHCKNVZGUYYSYOSK6YY50”不能识别为cmdlet、函数、脚本文件的名称,
或可操作的程序。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。
第1行字符:1
+CGFYC2VJBNQOYY9HKSKPKYGOYZ1JJWEPPJM1P1N0CMLUZY5MCM9TQ2HHCKNVZGUYYSYO。。。
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+CategoryInfo:ObjectNotFound:(cGFyc2VJbnQoYy9…GUYYSYOSK6YY50:String)[],CommandNotFoundException
+FullyQualifiedErrorId:CommandNotFoundException
您可以看到它解码了第一部分,然后在下一行,将其作为cmdlet读取
问题:
function Get-Base64 {
Write-Host 'Decode:' -ForegroundColor Yellow -NoNewline
$data = Read-Host
$decode = [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String("$data"))
$decode.ToString()
}
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
如何避免格式冲突以解码多行?base64编码字符串不能在多行上;这些字符串将是独立的base64编码字符串。原始内容中的换行符将被编码,而不是保留 如果要读取多个独立的base64编码字符串,则不能通过调用
read Host
,只读取一行
您将不得不循环并持续记录行,直到您得到一些要停止的“信号”输入(如空白输入):
base64编码的字符串不能在多行上;这些行应该是单独的、独立的base64编码字符串。原始内容中的换行将被编码,而不是保留 如果要读取多个独立的base64编码字符串,则不能通过调用
read Host
,只读取一行
您将不得不循环并持续记录行,直到您得到一些要停止的“信号”输入(如空白输入):