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

经过深夜测试研究,修改14# CrLf 的代码,测试成功命名前面的部分,后面从time.txt获取的时间就不会改变.大家是否能给点帮助我呢?
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set D=%date:~0,10%
  4. set D=%D:-=%
  5. set n=1
  6. for /f "delims=: tokens=1,2" %%a in (time.txt) do (
  7.     set T=0%%a%%b
  8.     for /f "delims=:" %%c in (name.txt) do (set aa=%%c
  9.     ren "!n!.txt" "!aa!_%D%_!T!.txt"
  10.     set /a n+=1
  11. ))
复制代码
非常感谢.
土土土土土土土土土土土

TOP

爪机,我就不上代码了,给你思路
findstr /n可以列出文本行号,这样,name文本也有序号了,一一对应用ren即可。

TOP

回复 16# 珠七七


13的代码有问题没?

TOP

本帖最后由 珠七七 于 2011-10-17 13:59 编辑

回复 18# awk

13楼的代码没有问题,符合我当时的要求,最新的要求我也更新在顶楼.
现在的使用16楼的代码,实践的结果表明只能获取一个文本.第二个就只能获取到最后那一行.
结果:
name.txt第一行_年月日_time.txt最后一行
name.txt第二行_年月日_time.txt最后一行
name.txt第三行_年月日_time.txt最后一行
以此类推...
现在只剩这个难点了,两个文本同时获取第N行.请问你还有办法吗?
正确的结果应该是:
name.txt第一行_年月日_time.txt最后一行
name.txt第二行_年月日_time.txt最后二行
name.txt第三行_年月日_time.txt最后三行
以此类推...
我现在有一个想法,既然不能同时获取,那就先让1.txt,2.txt...先改前面部分,变为:
name.txt第一行_年月日_.txt
name.txt第二行_年月日_.txt
....
再运行另外一个批处理,获取文件名,再在相对应的文件名后面添加time.txt里面的内容.
还在研究中...
土土土土土土土土土土土

TOP

回复 17# bluewing009


    谢谢,刚学批处理,这个命令还不了解.我会学一下的.
土土土土土土土土土土土

TOP

分为两个批处理,测试成功了.
第一个
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set D=%date:~0,10%
  4. set D=%D:-=%
  5. set n=1
  6. for /f "delims=:" %%c in (name.txt) do (set aa=%%c
  7.     ren "!n!.txt" "!aa!_%D%.txt"
  8.     set /a n+=1
  9. )
复制代码
第二个
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set D=%date:~0,10%
  4. set D=%D:-=%
  5. set n=1
  6. for /f "delims=: tokens=1,2" %%a in (time.txt) do (
  7.     set T=0%%a%%b
  8.     ren "!n!.*" "!n!.*_%D%_!t!.txt"
  9.     set /a n+=1
  10. )
复制代码
其实第二个"    ren "!n!.*" "!n!.*_%D%_!t!.txt"   "这一行不知道是什么意思,可结果却刚好与我想要的一样.
感谢大家的帮助.特别是13# awk ,因为是修改你的代码而得到的.
土土土土土土土土土土土

TOP

返回列表