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

[文件操作] [已解决]批处理怎样修改多级文件夹下文件后缀并移动?

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

需求是将 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 编辑 ]

'dir /b C:\bbb\aaa\' 修改成 ''dir /b /s C:\bbb\aaa\'' 试试

TOP

是不是少了 /S 参数?

TOP

  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 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

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

TOP

返回列表