用命令行合并ts文件出现顺序混乱的现象,求一份新的代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用命令行合并ts文件出现顺序混乱的现象,求一份新的代码相关的知识,希望对你有一定的参考价值。

文件名格式为:segment_0,segment_1,segment_2......segment_4000

@echo off
if exist "All_Segment.ts" del /f /q "All_Segment.ts"
for %%a in (*.ts) do set /a num+=1
for /l %%a in (1,1,%num%) do call set str=%%str%%+"segment_%%~a.ts"
copy /b %str:~1% "All_Segment.ts"
pause

脚本对于字数长度有限制。而您的文件多,且每个文件名的长度,都将导致总体长度超过了相应值,因此建议您分批处理。最后再把分批合并的文件再进行合并。
参考技术A 不清楚你的实际文件/情况,仅以问题中的样例/说明为据;以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
<# :
cls
@echo off
rem 使用copy批量合并ts文件出现乱序/顺序错乱的解决方法
mode con lines=5000
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
copy /b *.ts "合并.ts"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$codes=@'
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
public static class ExpDir

[DllImport("Shlwapi.dll", CharSet=CharSet.Unicode)]
public static extern int StrCmpLogicalW(string p1, string p2);
public static string[] Sort(string[] f)

Array.Sort(f, StrCmpLogicalW);
return f;


'@;
Add-Type -TypeDefinition $codes;

$path=$args[0].trimend('\');
$files=@(dir -liter $path|?('.ts' -eq $_.Extension) -and ($_ -is [System.IO.FileInfo])|%$_.Name);
$list=[ExpDir]::Sort($files);
for($i=0;$i -lt $list.count;$i++)
$oldfile=get-item -liter ($path+'\'+$list[$i]);
$newname='_#'+$i.toString().PadLeft(8,'0')+$oldfile.Extension;
$newfile=$path+'\'+$newname;
write-host ($oldfile.Name+' --> '+$newname);
move-item -liter $oldfile.FullName $newfile;

如何配置WinMerge作为Git的合并工具

首先安装好WinMerge,这一步没什么好说的,就是点击下一步就好。记得要点那个把WinMerge添加到环境变量里的选项,如果没选的话下一步需要修改profile文件。
然后配置Git Bash的PATH变量,之前很多教程都在说这个PATH但是都不甚详细。我摸索了一下(怪我自己Linux知识不熟),直接上代码大家应该能看明白。
export PATH="$PATH:/c/Program Files/WinMerge/"。
不过还有一个问题就是上面那句命令只能在不关闭bash前生效,可以去../Git/etc/里面修改profile文件,在最后一行加上上面那行命令就行。
第三步需要下载其他文件,由于我的Git版本是2.4.5,mergetool里面并没有添加对winmerge的支持,但是自从2.5.0之后Git添加了对winmerge的支持,所以我就从Git在github的主页上下载了最新的源码,从源码的/mergetool/目录下面copy了一份winmerge文件到../Git/mingw32/libexec/git-core/mergetool/下面。如果是Git2.x一下的版本目录应该是../Git/libexec/git-core/mergetool/。
完成这三步之后就可以尝试一下了,在bash里面输入
git mergetool --tool-help。
这时候bash就会列出能够使用的工具,如果winmerge在可用的那一栏里,就标志着可以用了。这时候还得让git知道你要用winmerge了。还需要在bash里面输入以下命令:
git config --global merge.tool winmerge。
参考技术A 程先commit支代码代码合并主支检查没冲突push

  另外用eclipse、android studio、visual studio、xcode、qt create自带或

  者内嵌
插件原找想用功能懒

  于window用tortiseGit +beyond comparemac用sourceTree本回答被提问者采纳

以上是关于用命令行合并ts文件出现顺序混乱的现象,求一份新的代码的主要内容,如果未能解决你的问题,请参考以下文章

TS文件极简合并

TS文件与m3u8文件合并怎么排序

想将几个TS文件合并成一个文件,使用命令COPY /B C:\1\*.TS C:\1\NEW.TS 合并之后,new.ts文件的大小等于

txt文件如何转成pdf文件

spark 实现大表数据合并

如何配置WinMerge作为Git的合并工具