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
具有%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] 举报,一经查实,本站将立刻删除。