8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

在 Powershell 中快速简单地连接二进制文件

Schraubstock1990 1月前

39 0

使用 Powershell 连接二进制文件的最佳方法是什么?我更喜欢简单易记且执行速度快的单行代码。我想到最好的方法是:gc -Encoding Byte -Path \'.\F...

使用 Powershell 连接二进制文件的最佳方法是什么?我更喜欢简单易记、执行速度快的单行代码。

我想到的最好的办法是:

gc -Encoding Byte -Path ".\File1.bin",".\File2.bin" | sc -Encoding Byte new.bin

这似乎可以正常工作,但是对于大文件来说速度非常慢。

帖子版权声明 1、本帖标题:在 Powershell 中快速简单地连接二进制文件
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Schraubstock1990在本站《powershell》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 您还可以使用此方法来连接任何类型的文件。
    不是那么快,但只是另一种方法

    cmd /c type file1 file2 file3 file4 > outfile
    

    或者,如果存在多个复制任务,您可以使用作业来加快速度。

    $jobs=@()
    $Files=@( @("d:\path\app1.rar","d:\path\app2.rar","d:\path\app3.rar","d:\path\appOutFile.rar"),@("c:\users\user\desktop\file1.iso","c:\users\user\desktop\file2.iso","c:\users\user\desktop\file3.iso","c:\users\user\desktop\isoOutFile.iso"),@("c:\users\user\video\video1.mp4","c:\users\user\video\video2.mp4","c:\users\user\video\mp4OutFile.mp4"))
    $totalMb=0
    foreach($Group in $Files){
        $sources=$Group|select -first ($Group.Length-1)
        $sources|%{ $totalMb+=(get-Item $_).Length/1mb }
        $sources=$(($sources -replace "^|$",[char]34)-join"+")
        $destination=[char]34+($Group|select -last 1)+[char]34
        cmd /c type nul> $destination
        $jobs+=start-job -scriptBlock { param($src,$dst) &cmd.exe "/c copy /b $src $dst" } -arg $sources,$destination 
        # $jobs+=start-job -scriptBlock { param($src,$dst) &cmd.exe "/c type $($src -replace '`"\+`"','`" `"') > $dst" } -arg $sources,$destination
    }
    
    "Total MegaBytes To Concatenate is: $( [math]::Truncate($totalMb) )MB"
    while ( $($jobs|% {$_.state -eq "running"}) -contains $true ) {"still concatenating files...";start-sleep -s 2}
    
    "jobs finished !!!";$jobs|receive-job;$jobs|remove-job -force
    
返回
作者最近主题: