Command line 将多个文件夹中的所有文件向上移动一级-命令行

Command line 将多个文件夹中的所有文件向上移动一级-命令行,command-line,dos,wildcard,Command Line,Dos,Wildcard,我有数以万计的*.wav文件分布在数百个文件夹中。我需要帮助让命令行将所有文件上移一级。所有这些文件的目录结构都相同,但文件夹的名称略有不同: Z:\Audio\Level*\story*\VOCAB\*.wav 所有文件都位于VOCAB文件夹中,我需要将它们移动到story*文件夹中: Z:\Audio\Level*\story*\*.wav 我可以通过在每个文件夹上运行move命令从命令行执行此操作,但是有没有一种方法可以在整个目录中的所有文件上递归运行它?我可以在位置路径中使用通配符吗 注

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

Z:\Audio\Level*\story*\VOCAB\*.wav

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

Z:\Audio\Level*\story*\*.wav

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

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

谢谢你能提供的任何帮助

试试以下方法:

for /r %F in (*.wav) do move %F %~pF\..
请参阅命令提示符中的
以获取/?
,作为参考(尤其是在我没有完全正确地“编写”代码的情况下…)


我建议从
\Audio
目录中启动它。

在另一个论坛()中发现了类似的问题

修改他们的一些代码,下面是一个批处理文件脚本,可能会达到这个目的(请在释放所有代码之前尝试一个小子集):


我赞成这样的解决方案,因为它是多么简单!但是,运行此命令会将所有文件放在起始目录中,而不是将它们上移一级。知道如何使用
%~pF
代码将文件升级一级吗?或者这就是
\..
应该做的事情?(对不起,我不熟悉
\..
)是的,目录中的“..”表示它所在的目录正上方的目录。谢谢!!在回顾您引用的论坛之前,我对这段代码有点纠结。我从中提取了一小段代码,用以下代码创建了一个非常小而简单的批处理文件:
@echo off for/f%%P in('dir/b/od')do copy%%P\VOCAB\*..\%%P\REM for/f%%P in(dir/b/od')do rmdir/s/q%%P\VOCAB
,并在我的每个
级别*
文件夹中运行它。这些文件夹中只有24个,所以这是一个非常简单的工作,它做到了!再次感谢!
@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%