微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

批量合并文件

我有一长串的文件,我想合并成几个文件

part-m-00000 part-m-00001 part-m-00002 part-m-00003 part-m-00004 part-m-00005 part-m-00006 part-m-00007 part-m-00008 part-m-00009 part-m-00010 part-m-00011 part-m-00012 ... part-m-01267

(注意文件名末尾的数字填充)

我想把每100个文件合并成10个单独的文件,剩下的67个合并到11个文件中。 我无法填充这些数字来合并文件

这就是我所能达到的 –

如何在Windowsbatch file中提取版本号?

search10个连续的单个数字

什么是WinNT环境的脚本语言?

检测CMD中的可移动驱动器号

如何解释批处理string中的variables?

@echo off if exist merge.txt del merge.txt echo. >merge.txt for /l %%a in (0,1,3) do ( Set Number=00000%%a Set Number=%Number:~-5% copy/b merge.txt+"part-m-%number%.txt" merge.txt )

我不认为数字的填充正在按预期工作。 它在for循环中对我不起作用。 如果我一般做这样的事情 –

Set Number=768 Set Number=00000%Number% Set Number=%Number:~-5% echo %Number%

它正确地填充数字。

我弄不清楚我做错了什么。 感谢任何帮助。

batch file中的国际字符

Windowsbatch file中的date分析

奇怪的string以winXP的彩色回显结束(findstr)

加到stdin

我怎样才能输出一个batch file到一行?

具有%XXX%的变量仅对for循环扩展一次,而不是在每次循环中扩展。

您需要使用!XXX!延迟扩展!XXX! 语法如下:

setlocal enableextensions enabledelayedexpansion for /l %%a in (0,3) do ( Set Number=00000%%a Set Number=!Number:~-5! echo !Number! )

有关更多详细信息,请参阅在for循环中初始化的问题批处理文件变量 。

尝试这个:

@echo off setlocal enabledelayedexpansion if exist merge.txt del merge.txt echo. >merge.txt for /l %%a in (0,3) do ( Set Number=00000%%a Set Number=!Number:~-5! copy /b merge.txt+"part-m-%number%.txt" merge.txt )

如果您不使用延迟扩展,变量%Number:~-5%将只扩展一次 – 在处理整个for命令之前。 使用延迟扩展,变量!Number:~-5! 每次运行时都会扩大,所以每次都会有所不同。

一个(也许更简单,更快)的方法是:

@echo off setlocal enabledelayedexpansion if exist merge.txt del merge.txt echo. >merge.txt set Number=99999 for /l %%a in (0,3) do ( Set /A Number+=1 copy /b merge.txt+"part-m-!Number:~-5!.txt" merge.txt )

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐