将所有文件从多个文件夹中移出一级 - 命令行

时间:2012-03-05 19:11:30

标签: command-line dos wildcard

我有数以万计的*.wav个文件分布在数百个文件夹中。我需要帮助才能获得命令行将所有文件向上移动一级。所有这些文件的目录结构都相同,但文件夹的名称略有不同:

  

Z:\音频\等级* \故事* \翻译\ * WAV

所有文件都位于VOCAB文件夹中,我需要将它们移至story*文件夹:

  

Z:\音频\等级* \故事* \ * WAV

我可以通过在每个单独的文件夹上运行move命令从命令行执行此操作,但有没有办法以递归方式在整个目录中的所有文件上运行它?我可以在位置路径中使用通配符吗?

注意: 级别*和故事*中的*是数字01-24 我在Windows XP Professional上。

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:1)

尝试类似:

for /r %F in (*.wav) do move %F %~pF\..

从命令提示符引用for /?作为参考(特别是如果我没有'代码'那么正确......)

我建议从\Audio目录开始。

答案 1 :(得分:0)

在另一个论坛(http://www.computerhope.com/forum/index.php/topic,98046.0/all.html)中找到了类似的问题。

修改他们的一些代码,这里是一个批处理文件脚本,可以解决这个问题(请先解决一小部分,然后再将其释放出来):

@echo off
set thisdir=%cd%
for /f "delims=" %%A in ('dir /b /ad') do (
    cd /d "%%~dpnA"
    for /f "delims=" %%B in ('dir /b /ad') do (
        echo Level 2 Directory: %%~dpnB
        cd /d "%%~dpnB"
        for /f "delims=" %%C in ('dir /b /ad') do (
            echo Level 3 Directory: %%~dpnC
            cd /d "%%~dpnC"
            move *.* ..\
            cd ..
            rd "%%~dpnC"
        )
        cd ..
    )
    cd..
)
cd /d "%thisdir%