Команда DOS для перемещения всех файлов в подкаталогах на один уровень вверх - PullRequest
7 голосов
/ 15 января 2011

У меня есть папка с множеством подпапок с одним или несколькими файлами в каждой. Я пытаюсь написать командный файл, который перемещает все эти файлы в C: \ songs (например). Любая помощь? Я уже попробовал

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

Папки Test и песни существуют, но я получаю сообщение об ошибке

%i was unexpected at this time. 

Что я делаю не так?

Ответы [ 2 ]

5 голосов
/ 21 апреля 2011

(переместить файлы в подкаталогах вверх на 1)

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

(последняя часть, в которой я обычно использую косые наклоны, но по какой-то причине эта сумасшедшая вещь продолжала удалять их. Хотя это будет работать в любом случае)1004 *

(удалить ненужные каталоги)

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

, т. Е. Если у вас была куча каталогов с файлами в каталогах «bin» под ними и вы хотели переместить все на 1 и удалить «bin»"каталоги.

5 голосов
/ 15 января 2011
FOR /R %i IN (C:\Test\*) DO MOVE "%i" C:\Songs

В пакетном файле это должно быть %% i. Странный причуд партии.

...