找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 26233|回复: 6

[文件操作] [已解决]批处理怎样将两个文件的各行一一对应合并为一个文件?

[复制链接]
发表于 2012-3-15 14:38:30 | 显示全部楼层 |阅读模式
本帖最后由 QIAOXINGXING 于 2012-3-15 22:55 编辑

电视剧的字幕和影片名对不上。

“影片1.txt” 里是电视剧的文件列表,如
   1.mkv
   2.mkv
   ....................
“字幕1.txt” 里是字幕的列表,如
   a.ass
   b.ass
  ,..............................
二者行数相同,且一一对应。
怎么把对应行处理并合成一行,即变成
  ren "a.ass " "1.ass"
   ...............

我写的感觉不靠谱,怎么写才好点儿?
  1. @echo off&SetLocal EnableDelayEdexpansion&cd /d "%~dp0"
  2. set "n=0"
  3. for /f "delims=" %%i in (影片1.txt) do (
  4.   set /a "n+=1"
  5.   set "yingpian!n!=%%~ni"
  6. )
  7. set "n=0"
  8. (for /f "delims=" %%i in (字幕1.txt) do (
  9.   set /a "n+=1"
  10.   call echo ren "%%i"  "%%yingpian!n!%%.ass"
  11. ))>rename.bat
复制代码

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-3-15 15:00:20 | 显示全部楼层
说实在的我有个不完全使用批处理的简单方法
你就使用excel 搞4列就可以了
第一列影片文件列表
第二列rename
第三列字幕文件列表
第四列修改后的字幕文件列表 (只需使用替换功能将第一列的影片文件列表拷过来然后将文件后缀从.mkv全部替换为.ass)
最后将后三列拷进一个bat文件运行就行了
当然在实现过程中一定要注意空格  
我想这样能更快的实现你的需求,当然本着对批处理学习的目的可以使用更复杂的批处理控制语句得以实现
O(∩_∩)O

评分

参与人数 1技术 +1 收起 理由
QIAOXINGXING + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-3-15 15:38:52 | 显示全部楼层
说实在的我有个不完全使用批处理的简单方法
你就使用excel 搞4列就可以了
第一列影片文件列表
第二列re ...
dangdangzone 发表于 2012-3-15 15:00


  
    呵呵,谢谢你的分享,其实我之前也是这么整的,只是太“手动”化了,还是“自动”的好。。
发表于 2012-3-15 16:00:57 | 显示全部楼层
finedstr 处理
 楼主| 发表于 2012-3-15 17:07:25 | 显示全部楼层
回复 4# terse


    能说清楚点吗?我悟性没那么高。。。。。
发表于 2012-3-15 19:46:04 | 显示全部楼层
回复 5# QIAOXINGXING
其实学会搜索
方法好多的
  1. @echo off&setlocal enabledelayedexpansion
  2. if "%1" equ "" (
  3.    for /f "tokens=1* delims=:" %%i in ('"%0 $|sort"') do (
  4.        if !N! equ %%i echo ren %%j !str:~,-4!%%~xj
  5.        set N=%%i&set str=%%j
  6.       
  7.    )
  8. pause&exit
  9. ) else for /f "tokens=1* delims=:" %%i in ('findstr /n "." 影片1.txt 字幕1.txt') do echo %%j
复制代码

评分

参与人数 1技术 +1 收起 理由
QIAOXINGXING + 1 费了老鼻子劲,终于看明白怎么回事了。。。

查看全部评分

发表于 2012-3-15 21:06:02 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "delims=" %%a in (a.txt) do (
  4.     set /p str=
  5.     echo ren "!str!" "%%~na.ass"
  6. ))<b.txt >c.bat
复制代码

评分

参与人数 1技术 +1 收起 理由
QIAOXINGXING + 1 这技巧真强大!!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 19:56 , Processed in 0.019388 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表