Board logo

标题: [文件操作] [已解决]批处理怎样修改多级文件夹下文件后缀并移动? [打印本页]

作者: ninghtwolf    时间: 2010-6-9 17:15     标题: [已解决]批处理怎样修改多级文件夹下文件后缀并移动?

最近遇到些问题需要解决,修改出以下命令。请各位大虾帮助修正。

需求是将 C:\aaa\bbb下的*****。XML。err多个文件后缀修改为*****  。XML。并剪切至c:\bbb文件夹下。只剪切指定文件。不动其他文件夹。

以下是我修改的命令。在一级目录下可以实现。但是在多级目录下就不能使用了。

@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir /b C:\bbb\aaa\') do (
    set a=%%~ni
    set a=!a:*.XML.err
    set a=!a:~,-10!
    ren c:\aaa\%%i !a!*.
)
move /y " c:\aaa\bbb *.XML" " c:\aaa"

[ 本帖最后由 ninghtwolf 于 2010-6-10 13:32 编辑 ]
作者: hb_135    时间: 2010-6-9 17:22

'dir /b C:\bbb\aaa\' 修改成 ''dir /b /s C:\bbb\aaa\'' 试试
作者: gxuan2008    时间: 2010-6-9 17:22

是不是少了 /S 参数?
作者: hanyeguxing    时间: 2010-6-9 23:00

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b/s C:\bbb\aaa\*.xml.err') do (
  3. ren "%%a" "%%~na"
  4. move "%%~dpa%%~na" c:\aaa\)
复制代码
ren和move都不递归子目录,所以必须在for内部。

[ 本帖最后由 hanyeguxing 于 2010-6-9 23:06 编辑 ]
作者: ninghtwolf    时间: 2010-6-10 13:04

非常感谢。问题已得到解决




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