Board logo

标题: [文件操作] 批处理怎样提取文件夹名命名文件夹下的文件并整合? [打印本页]

作者: opp113114    时间: 2011-2-9 10:52     标题: 批处理怎样提取文件夹名命名文件夹下的文件并整合?

有一列文件夹名为
01010289.D
01010290.D
01010291.D
每个文件夹下都有一个default.txt文件。我现在想要把每个txt文件改名为文件夹名(不要.D).txt
并且放置在同一文件夹下。有什么办法么请各位帮帮我。
作者: abcd    时间: 2011-2-9 11:05

  1. @echo off
  2. for /d %%i in (*) do (
  3.   ren %%i\default.txt  %%~ni.txt
  4. )
  5. pause
复制代码


代码与01010289.D类文件夹同目录
作者: opp113114    时间: 2011-2-9 11:09

显示系统找不到制定的文件啊。
作者: abcd    时间: 2011-2-9 11:13

我这测试没问题。。,
作者: opp113114    时间: 2011-2-9 11:15

按照你说的放的位置一样。是不是因为文件比较多的原因呢我这里有700多个。
作者: abcd    时间: 2011-2-9 11:16

是不是楼主的文件夹下没有default.txt文件,如果没有这个文件是会显示这样的提示的
作者: opp113114    时间: 2011-2-9 11:17

对,个别有的文件夹下没有。
作者: abcd    时间: 2011-2-9 11:23

如果这样的话,是没事的,有default.txt就会改了,没有的,就会有出错提示,并不影响运行结果
作者: abcd    时间: 2011-2-9 11:24

如果想没有提示,可以改成如下代码
  1. @echo off
  2. for /d %%i in (*) do (
  3.   ren %%i\default.txt  %%~ni.txt>nul 2>nul
  4. )
  5. pause
复制代码

作者: opp113114    时间: 2011-2-9 11:33

非常感谢你。我明白你的意思了。可是我想吧这些改名以后的文件统一放到一个文件夹下该怎么办呢。
作者: opp113114    时间: 2011-2-9 11:43

在线等啊~~谢谢大家的热心帮忙
作者: hanyeguxing    时间: 2011-2-9 12:04

如果指定目录不在当前目录下且为绝对路径:
  1. @echo off
  2. for /d %%a in (*) do if exist "%%a\default.txt" move "%%a\default.txt"  "指定目录\%%~na.txt"
复制代码
如果指定目录在当前目录下:
  1. @echo off
  2. set r=指定目录名
  3. for /d %%a in (*) do if /i not "%%a"=="%r%" if exist "%%a\default.txt" move "%%a\default.txt"  "%r%\%%~na.txt"
复制代码





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