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

Ris*_*shi 7 windows-xp dos batch-file

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

C:\>FOR /R C:\Test %i IN (*) DO MOVE %i C:\Songs
Run Code Online (Sandbox Code Playgroud)

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

%i was unexpected at this time. 
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Sil*_*Net 5

FOR /R %i IN (C:\Test\*) DO MOVE "%i" C:\Songs
Run Code Online (Sandbox Code Playgroud)

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


小智 5

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

for /r %x in (*.*) do move "%x" "%x"/../..
Run Code Online (Sandbox Code Playgroud)

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

(删除不需要的目录)

for /d /r %x in (bin) do rd "%x"
Run Code Online (Sandbox Code Playgroud)

也就是说,如果你有一堆目录,其中的文件位于"bin"目录下,你想要将所有内容都移动1并删除"bin"目录.