10

У меня есть папка (назовем ее A) с множеством подпапок B, C, D, E, в которой снова есть подпапки B1, B2, B3, ... С1, С2, С3 ...

Как я могу с помощью cmd переместить все файлы из всех подпапок в "корневую" папку A?

3 ответа3

12

В моем исходном сообщении не указывалось расширение файла в команде перемещения. %~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"), чтобы принудительно перезаписать. Если вы хотите что-то другое, вам понадобится другая программа, которая может автоматически переименовать все для вас.

Кроме того, если вы хотите использовать это в пакетном файле, измените все % на %% .

2

Создайте папку и скопируйте в нее все остальные папки, затем щелкните правой кнопкой мыши по этой папке и выберите « Поиск». В поле поиска введите *.*

Это перечислит все файлы и папки. Выберите все файлы, которые вы хотите в вашем корневом каталоге и вырезать их. Перейдите в корневой каталог и вставьте туда все файлы.

0

Установите Cygwin (или другую среду Unix для Windows) и выполните следующее:

cd A
find . -type f -exec mv {} . \;

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .