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

[文件操作] 批处理怎样提取文件夹名命名文件夹下的文件并整合?

有一列文件夹名为
01010289.D
01010290.D
01010291.D
每个文件夹下都有一个default.txt文件。我现在想要把每个txt文件改名为文件夹名(不要.D).txt
并且放置在同一文件夹下。有什么办法么请各位帮帮我。

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


代码与01010289.D类文件夹同目录

TOP

显示系统找不到制定的文件啊。

TOP

我这测试没问题。。,

TOP

按照你说的放的位置一样。是不是因为文件比较多的原因呢我这里有700多个。

TOP

是不是楼主的文件夹下没有default.txt文件,如果没有这个文件是会显示这样的提示的

TOP

对,个别有的文件夹下没有。

TOP

如果这样的话,是没事的,有default.txt就会改了,没有的,就会有出错提示,并不影响运行结果

TOP

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

TOP

非常感谢你。我明白你的意思了。可是我想吧这些改名以后的文件统一放到一个文件夹下该怎么办呢。

TOP

在线等啊~~谢谢大家的热心帮忙

TOP

如果指定目录不在当前目录下且为绝对路径:
  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"
复制代码
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表