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

[文本处理] 批处理怎样按照时间顺序依次批量修改文件名为name.txt中的内容?

一个文件夹中有若干文件和一个name.txt,name.txt中存放将要重命名这些文件所要用到的文件名,每行一个文件名。现在想用批处理依次将这些文件修改为name.txt中的名字,求高手指点。谢谢!

name.txt的内容贴几行出来看看

TOP

回复 2# gawk

比如文件夹里面有三个文件分别是a.jpg, b.png, c.jpg;
name.txt里面有三个名字,分别是:
hello
world
hi
我的需求是按照时间从前到后,分别把a.jpg, b.png, c.jpg;变成hello.jpg, world.png, hi.jpg

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "delims=" %%i in ('dir /a-d /o-d /b ^|find /v "name.txt"') do (
  3.   set /p v=
  4.   ren "%%i" !v!%%~xi
  5. ))<name.txt
复制代码

TOP

回复 4# lvsehuaxue

测试没有用啊

TOP

自己顶起,希望高手指点。

TOP

回复 1# hrhktkbzyy

你的name.txt文件放在哪里?需要重命名文件的文件夹又在哪里?

TOP

回复 7# apang

放在同一个文件夹中。

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in (name.txt) do set/a n+=1&set .!n!=%%a
  3. for /f "delims=" %%a in ('dir /a-d /b /o-d') do (
  4.   if /i not "%%a"=="name.txt" if /i not "%%a"=="%~nx0" (
  5.     set/a m+=1
  6.     if !m! leq !n! call ren "%%a" "%%.!m!%%%%~xa"
  7.   )
  8. )
  9. pause
复制代码

TOP

回复 9# apang

多谢!测试此方法可行。

TOP

返回列表