Board logo

标题: [文本处理] 批处理怎样以文本行内容为文件名重命名目录下TXT文本? [打印本页]

作者: chuan31    时间: 2011-1-19 20:41     标题: 批处理怎样以文本行内容为文件名重命名目录下TXT文本?

是这样的 我需要实现以下功能:处理环境:当前文件夹下有A.txt(A.TXT里面有N行内容 行数不固定);有N个TXT文本(文件名不固定) 欲实现功能:(1)批量以A.TXT里面的行内容分别重命名当前文件夹下所有TXT文本,比如A.TXT里面有20行内容,就分别以这20行内容分别重命名20个当前文件夹下的txt文本,每命名一个就把对应的A.TXT里面的行删除 以防重复 创建数量以A.TXT行数为准。
作者: hanyeguxing    时间: 2011-1-19 21:13

  1. @echo off&setlocal enableDelayedExpansion
  2. set "r=a.txt"
  3. for /f "usebackq delims=" %%a in ("%r%") do set/a a+=1&set "#!a!=%%a"
  4. for %%a in (*.txt) do if /i not "%%a"=="%r%" (
  5.         set/a b+=1
  6.         if !b! gtr %a% goto:end
  7.         for %%b in (!b!) do (
  8.                 ren "%%a" "!#%%b!.txt"
  9.                 set #!b!=
  10. ))
  11. :end
  12. (for /f "tokens=1* delims==" %%a in ('set #') do echo/%%b)>"%r%"
复制代码
如果 a.txt 中已包含 .txt ,则把 ren "%%a" "!#%%b!.txt" 中的 .txt 去掉

[ 本帖最后由 hanyeguxing 于 2011-1-19 21:19 编辑 ]
作者: renshihong    时间: 2011-1-19 21:24

for /f 和ren可以实现




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