[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样以文本行内容为文件名重命名目录下TXT文本?

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

  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 编辑 ]
1

评分人数

    • chuan31: 非常好用 非常感谢!必须加分!技术 + 1
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

for /f 和ren可以实现

TOP

返回列表