Board logo

标题: [文件操作] copy 命令可按指定顺序来合并文件么? [打印本页]

作者: xzwcn    时间: 2018-7-17 18:39     标题: 如何用批处理实现按当前可见的文件列表顺序重命名?

借助第三方工具内置的排序,不能得到上图的顺序。。。。用批处理可以么?

或者换个思考:不管当前可见的顺序,根据命名规则修改文件名,后面再排序即可?
作者: WHY    时间: 2018-7-17 21:31

dir *.ts | ?{$_.Name -match '^a(\d{1,3}\.ts)$'} | ren -newName {$matches[1].PadLeft(6, '0')}
作者: xzwcn    时间: 2018-7-17 22:21

回复 2# WHY
  1. dir *.ts | ?{$_.Name -match '^a(\d{1,3}\.ts)$'} | ren -newName {$matches[1].PadLeft(6, '0')}
复制代码
'?{$_.Name' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

请问这个要怎么运行?需要其它辅助的?
作者: Batcher    时间: 2018-7-18 08:21

回复 3# xzwcn


    2楼是PowerShell代码
作者: 窄口牛    时间: 2018-7-18 08:52

重找找软件
作者: Batcher    时间: 2018-7-18 08:56

DOS实现非常困难,Windows的BAT实现很简单:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in (1,1,1000) do (
  4.     set n=1000%%i
  5.     if exist "a%%i.ts" (
  6.         ren "a%%i.ts" "a!n:~-3!.ts"
  7.     )
  8. )
复制代码

作者: xzwcn    时间: 2018-7-18 09:21     标题: copy 命令可按指定顺序来合并文件么?

copy 命令可按指定顺序来合并文件么?
作者: xzwcn    时间: 2018-7-18 10:42

借助工具可以按顺序合并:

TSSplitter 1.2 Download - VideoHelp
https://www.videohelp.com/software/TSSplitter
作者: CrLf    时间: 2018-7-18 11:34

楼主电脑上的顺序咋就这么奇怪
作者: xzwcn    时间: 2018-7-18 13:35

回复 9# CrLf

怎么奇怪?我点击【名称】列,它可以按升序、倒序排列,正常的,只是copy 命令不能指定顺序,它按自己的顺序处理了。
作者: yhcfsr    时间: 2018-7-18 16:55

回复 10# xzwcn


无论是DIR还是FOR /R都是按字符大小逐个字符比较的,而不是纯数字大小,这与WIN是有区别的.
想要实现BAT与WIN排序相同,数字部分位数要相同,不足的左补0.如果是纯数字,下载第三方命令行sort可实现.
回到你的问题,你完全可以截取数字部分进行补0操作,而不用排序这么麻烦低效的操作.




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2