Board logo

标题: [文件操作] [已解决]批处理怎样用文本的名字对应文件命名? [打印本页]

作者: fkfreedom    时间: 2011-5-1 02:01     标题: [已解决]批处理怎样用文本的名字对应文件命名?

有一个文本文件,上面是名字,下面对应的是文件名。 把文件夹里对应的文件,对应起来,重新命名,谢谢。
  1. 国际                                            
  2. 工作.docx       改名成              国际.docx
  3. 新加坡
  4. 学习.docx       改名成              新加坡.docx
  5. 娱乐.docx       改名成              新加坡-1.docx
  6. 中华人民共和国
  7. 场所.docx       改名成              中华人民共和国.docx
  8. 人民英雄纪念碑
  9. 体育希望.docx       改名成          人民英雄纪念碑.docx
  10. 海南岛
  11. 人民 公园.docx       改名成         海南岛.docx
  12. 中山纪念塔.docx       改名成        海南岛-1.docx
  13. 国际航空公司
  14. 杭州西湖.docx       改名成          国际航空公司.docx
复制代码
谢谢版主回帖,可能没说明白,下载下来的文件,查找这个文本,DOCX上面对应的名字,把文件重新命名




5楼代码可用,Perfact!Thanks!
作者: fkfreedom    时间: 2011-5-1 11:43

继续求教
作者: hanyeguxing    时间: 2011-5-1 15:22

本帖最后由 hanyeguxing 于 2011-5-1 15:35 编辑

要求: http://www.bathome.net/人民 公园.docx 中只能有两组 /
  1. @echo off&setlocal enableDelayedExpansion
  2. set "c=a.txt"
  3. for /f "usebackq tokens=1,2* delims=/" %%a in ("%c%") do (
  4.     if /i "%%a"=="http:" (
  5.         if /i not "%%c"=="%c%" ren "%%~c" "!a!!b!%%~xc"
  6.         set/ab-=1
  7.     ) else set b=&set "a=%%a"
  8. )
复制代码
当文本中文件名与批处理名绝不重复时,可不用 if /i not "%%c"=="%c%"
作者: fkfreedom    时间: 2011-5-1 16:33

本帖最后由 fkfreedom 于 2011-5-1 16:59 编辑

谢谢版主回帖,可能没说明白,下载下来的文件,改成下载链接上对应的名字


已更新首贴。
作者: hanyeguxing    时间: 2011-5-1 17:19

  1. @echo off
  2. for /f "usebackq delims=" %%a in ("a.txt") do if exist "%%a" (
  3.     setlocal enableDelayedExpansion
  4.     ren "%%a" "!a!!b!%%~xa"
  5.     endlocal&set/ab-=1
  6. ) else set b=&set "a=%%a"
复制代码





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