Переместите вложенные файлы в корневой каталог в DOS

У меня есть структура каталогов, например:

C:\mydir\foo\a.zip
C:\mydir\foo\b.zip
C:\mydir\bar\c.zip
C:\mydir\baz\d.zip

Я хотел бы переместить все файлы из C:\mydir\*\*.zip в C:\mydir, чтобы структура вывода была следующей:

C:\mydir\a.zip
C:\mydir\b.zip
C:\mydir\c.zip
C:\mydir\d.zip

...с лишними пустыми папками, потенциально все еще присутствующими. Как мне это сделать, используя только командную строку DOS?


person Mat Kelly    schedule 14.01.2011    source источник
comment
Вот несколько скриптов flatten... сам не пробовал, но стоит опубликовать здесь, если один из них работает для вас: petri.co.il/forums/showthread.php?t=24778   -  person harpo    schedule 14.01.2011


Ответы (1)


Попробуй это:

CD /D C:\mydir
FOR /f "delims=" %a IN ('DIR *.zip /s /b') DO MOVE "%a" .

Сначала он меняет каталог на C:\mydir. DIR перечисляет все zip-файлы в подкаталогах только с именами файлов. FOR гарантирует, что каждая строка входит в переменную %a. MOVE в основном перемещает каждый найденный файл в текущий каталог, то есть C:\mydir.

person sjngm    schedule 14.01.2011