gpt4 book ai didi

powershell - 如何在不更改编码的情况下将命令的输出通过管道传输到文件?

转载 作者:行者123 更新时间:2023-12-01 09:55:45 26 4
gpt4 key购买 nike

我想将命令的输出通过管道传输到文件:

PS C:\Temp> create-png > binary.png

我注意到 Powershell 更改了编码,并且我可以手动提供编码:
PS C:\Temp> create-png | Out-File "binary.png" -Encoding OEM

然而,没有 RAW 编码选项,即使是 OEM 选项也会将换行字节 ( 0xA resp 0xD) 更改为 windows 换行字节序列 ( 0xD 0xA),从而破坏任何二进制格式。

在管道传输到文件时,如何防止 Powershell 更改编码?

相关问题
  • PowerShellscript, bad file encoding conversation
  • Write output to a text file in PowerShell
  • Using PowerShell to write a file in UTF-8 without the BOM
  • 最佳答案

    尝试使用设置内容:

    create-png | set-content -path myfile.png -encoding byte

    如果您需要有关 set-content 的其他信息,请运行
    get-help set-content

    您还可以使用“sc”作为 set-content 的快捷方式。

    使用以下内容进行测试,生成可读的 PNG:
    function create-png()
    {
    [System.Drawing.Bitmap] $bitmap = new-object 'System.Drawing.Bitmap'([Int32]32,[Int32]32);
    $graphics = [System.Drawing.Graphics]::FromImage($bitmap);
    $graphics.DrawString("TEST",[System.Drawing.SystemFonts]::DefaultFont,[System.Drawing.SystemBrushes]::ActiveCaption,0,0);
    $converter = new-object 'System.Drawing.ImageConverter';
    return([byte[]]($converter.ConvertTo($bitmap, [byte[]])));
    }

    create-png | set-content -Path 'fromsc.png' -Encoding Byte

    如果您要调用 ipconfig 等非 PowerShell 可执行文件,并且只想从标准输出中捕获字节,请尝试 Start-Process:
    Start-Process -NoNewWindow -FilePath 'ipconfig' -RedirectStandardOutput 'output.dat'

    关于powershell - 如何在不更改编码的情况下将命令的输出通过管道传输到文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28166845/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com