У меня есть папка (назовем ее A) с множеством подпапок B, C, D, E, в которой снова есть подпапки B1, B2, B3, ... С1, С2, С3 ...
Как я могу с помощью cmd переместить все файлы из всех подпапок в "корневую" папку A?
У меня есть папка (назовем ее A) с множеством подпапок B, C, D, E, в которой снова есть подпапки B1, B2, B3, ... С1, С2, С3 ...
Как я могу с помощью 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"
), чтобы принудительно перезаписать. Если вы хотите что-то другое, вам понадобится другая программа, которая может автоматически переименовать все для вас.
Кроме того, если вы хотите использовать это в пакетном файле, измените все %
на %%
.
Создайте папку и скопируйте в нее все остальные папки, затем щелкните правой кнопкой мыши по этой папке и выберите « Поиск». В поле поиска введите *.*
Это перечислит все файлы и папки. Выберите все файлы, которые вы хотите в вашем корневом каталоге и вырезать их. Перейдите в корневой каталог и вставьте туда все файлы.
Установите Cygwin (или другую среду Unix для Windows) и выполните следующее:
cd A
find . -type f -exec mv {} . \;