У меня есть папка (назовем это A) с множеством подпапок B, C, D, E, в которых снова есть подпапки B1, B2, B3, ... C1, C2, C3 ...
Как с помощью cmd переместить все файлы из всех подпапок в «корневую» папку A?
У меня есть папка (назовем это A) с множеством подпапок B, C, D, E, в которых снова есть подпапки B1, B2, B3, ... C1, C2, C3 ...
Как с помощью cmd переместить все файлы из всех подпапок в «корневую» папку A?
Ответы:
В моем исходном сообщении не указывалось расширение файла в команде перемещения.
%~niвозвращает только базовое имя, вы должны использовать,%~nxiчтобы получить как имя файла, так и расширение! Я надеюсь, что вы не испортили свои имена файлов в моем аккаунте! (
Из командной строки:
cd /d C:\Path\To\A
for /r %i in (*) do @move "%i" "%~nxi"
Если вам нужно очистить пустые папки потом:
for /d %i in (*) do @rd /s /q "%i"
Теперь, если у вас есть какие-либо конфликты имен файлов, вы сами по себе. Вы можете добавить /yпараметр в moveкоманду (перед "%i") для принудительной перезаписи. Если вы хотите что-то другое, вам понадобится другая программа, которая может автоматически переименовать все для вас.
Кроме того , если вы хотите использовать это в пакетном файле, изменить все %к %%.
FOR /r- приятно!
Создайте папку и скопируйте в нее все остальные папки, затем щелкните правой кнопкой мыши по этой папке и выберите « Поиск» . В поле поиска введите *.*.
Это перечислит все файлы и папки. Выберите все файлы, которые вы хотите в вашем корневом каталоге и вырезать их. Перейдите в корневой каталог и вставьте туда все файлы.
Установите Cygwin (или другую среду Unix для Windows) и выполните следующее:
cd A
find . -type f -exec mv {} . \;
mvи findвариантов, вы можете использовать find . -type f -exec mv -t . {} \;вместо этого.
mkdir -p a/a1 a/a2 a/a3 b/b1 b/b2 b/b3 cи touch a/a1/foo a/a1/bar a/a2/baz a/a3/qux b/b1/quux b/b2/quuux b/b3/quuuux c/cccдля подготовки.
find . -type f -exec mv {} . ;и, кажется, все в порядке.