我有数以万计的*.wav
个文件分布在数百个文件夹中。我需要帮助才能获得命令行将所有文件向上移动一级。所有这些文件的目录结构都相同,但文件夹的名称略有不同:
Z:\音频\等级* \故事* \翻译\ * WAV
所有文件都位于VOCAB
文件夹中,我需要将它们移至story*
文件夹:
Z:\音频\等级* \故事* \ * WAV
我可以通过在每个单独的文件夹上运行move命令从命令行执行此操作,但有没有办法以递归方式在整个目录中的所有文件上运行它?我可以在位置路径中使用通配符吗?
注意: 级别*和故事*中的*是数字01-24 我在Windows XP Professional上。
感谢您提供的任何帮助!
答案 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%