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

[文件操作] 修改子目录中文件的后缀名

先申明,本人不会批处理,完全是爱好

         求一个批处理.

        批量修改指定目录(含子目录)中所有TXT文件的后缀名为tmp.

        假设有文件夹是C:\ABC, 用批处理实现修改ABC目录和子目录中所有的TXT文件后缀名*.txt,改为TMP文件*.tmp.
        需要强调的是:  子目录.         


        在论坛中搜索过了.不是看不懂,就是不明确.

[ 本帖最后由 墨者革离 于 2008-11-29 20:25 编辑 ]

  用这个代码试试(请先创建测试目录,在测试目录中做试验):
  1. @echo off
  2. for /f "delims=" %%i in ('dir /ad /b /s "c:\abc" 2^>nul') do ren "%%i\*.txt" *.tmp
  3. pause
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

代码中在那里指定目录 C:\ABC,   不懂.

TOP

  2楼已经添加了目录 c:\abc ,请测试。
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

经测试可以, 但命令暂停后,出现四行系统找不到文件. 因为目录下文本太多,不知道错在那里.

刚才在别处找到一组代码,没有提示错误.

  1. @echo off
  2. FOR /R c:\abc %%a IN (*.txt) DO (ren %%a %%~na.tmp)
  3. pause
复制代码


谢谢管理员的关心支持.

TOP

  用dir方案来重命名文件时提示说系统找不到文件,是因为那些文件具有隐藏或者系统属性,而 for /r 的时候,不会搜索到这些文件,所以没有提示错误。

  如果你需要对所有属性的文件都要改后缀名,并且不在意文件的属性是否被修改的话,那么,请使用以下代码(先去掉所有txt文件可能存在的系统及隐藏属性):
  1. @echo off
  2. for /f "delims=" %%i in ('dir /ad /b /s "c:\abc" 2^>nul') do (
  3.     attrib -h -s *.txt
  4.     ren "%%i\*.txt" *.tmp
  5. )
  6. pause
复制代码
尺有所短寸有所长,学好批处理没商量;
考虑问题复杂化,解决问题简洁化。

心在天山,身老沧州。

TOP

返回列表