Board logo

标题: [文件操作] 批处理如何从txt文本中读取文件名并对将指定目录下的指定扩展名的文件进行重命名 [打印本页]

作者: 我来了    时间: 2013-1-27 16:27     标题: 批处理如何从txt文本中读取文件名并对将指定目录下的指定扩展名的文件进行重命名

本帖最后由 pcl_test 于 2016-11-27 19:18 编辑

想弄个批处理 读取TXT批理改名的
1.某目录下存在 *.jpg
2.读取  改名.txt(一行一个中文的文件名)
3.改成上面 (一行一个).扩展名  不变。



看到sina某博客上面有一篇,大意跟这个差不多,不过要用到excel填充功能生成;ren 一列,更名前后的文件名各一列,完事运行批处理,
觉得那种比较麻烦,求个一劳永逸的,谢谢大家。

作者: 我来了    时间: 2013-1-27 16:49

本帖最后由 我来了 于 2013-1-27 16:57 编辑

我用按键精灵结合TC, 编了一个
a=Plugin.File.ReadFileEx("C:\Documents and Settings\Administrator\桌面\批量改名.txt")
b = Split(a, "|")

For i = 0 To UBound(b) - 1

Delay 50
KeyDown "F2", 1
Call Plugin.Sys.SetCLB(b(i))
b(i)=Plugin.Sys.GetCLB()
Delay 50
KeyUp "F2", 1
Delay 50
KeyDown "Ctrl", 1
Delay 50
KeyDown "V", 1
Delay 79
KeyUp "V", 1
Delay 39
KeyUp "Ctrl", 1
Delay 50
KeyDown "Enter", 1
Delay 78
KeyUp "Enter", 1
Delay 50
KeyDown "Down", 1
Delay 74
KeyUp "Down", 1
   
next

效果尚可,但觉得不如 批处理的实在
作者: 我来了    时间: 2013-1-27 16:51

因为直接写入的话,会出现乱码,所以上面改成了^v
汗~~~
作者: 我来了    时间: 2013-1-27 18:17

从论坛中得到消息,又下载了个叫  拖把更名,结果也有这个功能,但还是想知道答案。
作者: BAT-VBS    时间: 2013-1-27 19:22

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. >%temp%\bathome.txt echo,
  4. >>%temp%\bathome.txt type 改名.txt
  5. set n=1
  6. for /f "delims=" %%a in ('dir /b *.jpg') do (
  7.     set skip=skip=!n!
  8.     call :changename "!skip!" "%%a"
  9.     set /a n+=1
  10. )
  11. goto :eof
  12. :changename
  13. for /f "%~1 delims=" %%b in (%temp%\bathome.txt) do (
  14.     ren "%~2" "%%b.jpg"
  15.     goto :eof
  16. )
复制代码

作者: 我来了    时间: 2013-1-27 20:29

BAT-VBS 发表于 2013-1-27 19:22



    大哥啊,请明示下,你这个该咋用呢?
作者: BAT-VBS    时间: 2013-1-27 22:41

回复 6# 我来了


    直接用
作者: 我来了    时间: 2013-1-28 09:34

回复  我来了


    直接用
BAT-VBS 发表于 2013-1-27 22:41

>>%temp%\bathome.txt type 改名.txt




bathome.txt
改名.txt


不明白,这两个文件要放入哪个目录呢?路径如何修改呢?
作者: hankerer    时间: 2013-1-28 10:06

回复 1# 我来了


    没看明白你想表达的意思。
作者: BAT-VBS    时间: 2013-1-28 10:15

回复 8# 我来了


    *.jpg,改名.txt,test.bat放到同一个目录下面




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