相关疑难解决方法(0)

用powershell解码base64

我正在尝试从base64解码电子邮件文件中的附件并将其保存到磁盘.

出于测试目的,这是我的代码.其中input.txt只包含base64编码数据,这是一个HTML文件.

$file = "C:\input.txt"
$data = Get-Content $file
[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($data)) > out.html
Run Code Online (Sandbox Code Playgroud)

解码工作正常,它生成一个包含所有行的新文件,并且与原始附件明显相同.问题是输出文件的大小是两倍(实际上(filesize*2)+6字节,在这种情况下).

我不正确地解码了吗?我也试过UTF8而不是ASCII ...同样的结果.

base64 powershell-3.0

12
推荐指数
3
解决办法
3万
查看次数

为什么“Get-ChildItem -File | Get-FileHash”有效?

我对 Bash 比对 Powershell 更熟悉,有时我对后者的对象模型感到困惑。

查看Get-FileHash文档,似乎有 3 种指定输入的方法:

  • Get-FileHash [-Path]
  • Get-FileHash [-LiteralPath]
  • Get-FileHash [-InputStream]

前两个取文件名,第三个取数据流。

现在,Get-ChildItem -File似乎输出System.IO.FileInfo对象,从什么Get-Member说:

$ Get-ChildItem -File | Get-Member
TypeName: System.IO.FileInfo
Run Code Online (Sandbox Code Playgroud)

然而管道Get-ChildItem -File | Get-FileHash工作正常。我的问题是,允许转换System.IO.FileInfo为预期的输入类型的机制是什么Get-FileHash

powershell

7
推荐指数
1
解决办法
353
查看次数

为什么在PowerShell中此字符串未序列化为简单的JSON字符串

两者均见下方$a$s是包含文本的字符串,"String"但每个字符串的转换方式与ConvertTo-JSON不同。

为什么不$s | ConvertToJson生产"String"??

PS W:\PowerShell\powowshell> $a="String"
PS W:\PowerShell\powowshell> $a
String
PS W:\PowerShell\powowshell> $a.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object


PS W:\PowerShell\powowshell> $a | ConvertTo-Json
"String"


PS W:\PowerShell\powowshell> $s
String
PS W:\PowerShell\powowshell> $s.gettype()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     String                                   System.Object


PS W:\PowerShell\powowshell> $s | ConvertTo-Json
{
    "value":  "String",
    "required":  "true"
}
Run Code Online (Sandbox Code Playgroud)

背景故事

$sparameterValue一个.ps1检查用Get-Help …

powershell json

3
推荐指数
1
解决办法
80
查看次数

返回多个对象的 cmdlet,它是什么集合类型(如果有)?[电源外壳]

Get-ADusercmdlet的示例:

$Users = Get-ADuser -Filter *
Run Code Online (Sandbox Code Playgroud)

在大多数情况下它会返回多个 ADuser 对象,但它是什么“集合”类型?文档只说它会返回一个或多个 Microsoft.ActiveDirectory.Management.ADUser 的用户对象。

尝试使用例如,($Users -is [System.Collections.ArrayList])但我无法确定“集合”类型?

arrays collections powershell cmdlet

3
推荐指数
1
解决办法
332
查看次数

标签 统计

powershell ×3

arrays ×1

base64 ×1

cmdlet ×1

collections ×1

json ×1

powershell-3.0 ×1