![Board logo](images/default/logo.gif)
标题: [文本处理] 批处理怎样按照时间顺序依次批量修改文件名为name.txt中的内容? [打印本页]
作者: hrhktkbzyy 时间: 2012-6-1 17:59 标题: 批处理怎样按照时间顺序依次批量修改文件名为name.txt中的内容?
一个文件夹中有若干文件和一个name.txt,name.txt中存放将要重命名这些文件所要用到的文件名,每行一个文件名。现在想用批处理依次将这些文件修改为name.txt中的名字,求高手指点。谢谢!
作者: gawk 时间: 2012-6-1 18:03
name.txt的内容贴几行出来看看
作者: hrhktkbzyy 时间: 2012-6-1 20:45
回复 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
作者: lvsehuaxue 时间: 2012-6-2 11:27
- @echo off&setlocal enabledelayedexpansion
- (for /f "delims=" %%i in ('dir /a-d /o-d /b ^|find /v "name.txt"') do (
- set /p v=
- ren "%%i" !v!%%~xi
- ))<name.txt
复制代码
作者: hrhktkbzyy 时间: 2012-6-2 12:27
回复 4# lvsehuaxue
测试没有用啊
作者: hrhktkbzyy 时间: 2012-6-7 09:40
自己顶起,希望高手指点。
作者: apang 时间: 2012-6-7 10:14
回复 1# hrhktkbzyy
你的name.txt文件放在哪里?需要重命名文件的文件夹又在哪里?
作者: hrhktkbzyy 时间: 2012-6-7 12:30
回复 7# apang
放在同一个文件夹中。
作者: apang 时间: 2012-6-7 13:07
- @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in (name.txt) do set/a n+=1&set .!n!=%%a
- for /f "delims=" %%a in ('dir /a-d /b /o-d') do (
- if /i not "%%a"=="name.txt" if /i not "%%a"=="%~nx0" (
- set/a m+=1
- if !m! leq !n! call ren "%%a" "%%.!m!%%%%~xa"
- )
- )
- pause
复制代码
作者: hrhktkbzyy 时间: 2012-6-7 16:35
回复 9# apang
多谢!测试此方法可行。
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |