DOS命令将子目录中的所有文件向上移动一级

时间:2011-01-15 18:08:22

标签: windows-xp dos batch-file

我有一个包含很多子文件夹的文件夹,每个文件夹中都有一个或多个文件。我正在尝试编写一个批处理文件,将所有这些文件移动到C:\ songs(例如)。有帮助吗?我已经尝试了

C:\>FOR /R C:\Test %i IN (*) DO MOVE %i C:\Songs

文件夹测试和歌曲存在,但我收到错误说

%i was unexpected at this time. 

我做错了什么?

2 个答案:

答案 0 :(得分:5)

FOR /R %i IN (C:\Test\*) DO MOVE "%i" C:\Songs

在批处理文件中,它必须是%% i。奇怪的批次怪癖。

答案 1 :(得分:5)

(将子目录中的文件向上移动1)

for /r %x in (*.*) do move "%x" "%x"/../..

(最后一部分我通常使用向后倾斜,但这个疯狂的东西因为某种原因不断删除它们。它会以任何方式工作)

(删除不需要的目录)

for /d /r %x in (bin) do rd "%x"

,即如果你有一堆目录,其中包含“bin”目录下的文件 并且你想将所有内容都移动1并删除“bin”目录。