У меня есть куча папок внутри папок. Как это
Root Folder
-- Folder 1
-- Folder 2
-- Folder 3
-- Folder 4
Я хочу свернуть все папки, чтобы все файлы в папке 1, папке 2, папке 3, ... папке n существовали в корневой папке.
Какой самый быстрый способ сделать это в Windows?
Ответы:
Нет причин использовать специальные инструменты или даже сценарии. Просто используйте функцию поиска в проводнике.
*
и нажмите Enter.Если вы предпочитаете иметь скрипт, чтобы вы могли просто запустить его и забыть, это также можно сделать. Команда для замены
mv *\* .
довольно проста (for /r %f in (*.*) do @move "%~f" .
), но я уверен, что вы хотели бы обработать дубликаты, не оставляя их позади, как в ответе @Nicole Hamilton. Добавление числа к имени файла дубликатов, вероятно, самый простой способ сделать это.Скопируйте и вставьте следующий пакетный файл в Блокнот и сохраните его как «flatten.cmd» (включая кавычки):
Чтобы использовать сценарий, просто перетащите папку, которую вы хотите свести поверх нее.
источник
Вы можете сгладить в проводнике Windows, перейдя к папке, которую вы хотите сгладить и поиска,
System.Kind:<>folder
чтобы исключить папки из результатов.Затем вы можете выбрать все файлы с помощью сочетания клавиш CTRL + A, скопировать и вставить их в новую папку. Обратите внимание, что Windows Explorer спросит вас, как обращаться с дублирующимися именами файлов.
источник
System.Kind:<>cartella
)Это легко сделать с помощью оболочки Unix. Вот что вы можете сделать с моей собственной оболочкой Hamilton C (включая бесплатную версию ). Вы можете сделать что-то очень похожее с Cygwin bash.
Если ваша директория действительно огромна, возможно, что из-за слишком длинного символа командной строки Windows не сможет передать дочерний процесс. ( Вызов Windows CreateProcess ограничивает список аргументов символами Unicode 32K.) Но оболочка C не имеет внутренних ограничений, поэтому вы можете перебирать весь список следующим образом:
К @ MarkAllen выше, этот вид предполагает, что нет повторяющихся имен. Если они есть, более поздние копии в списке перезапишут более старые. Если это проблема, вы можете перебирать файлы, используя
mv
их, только если вы не перезаписываете.:t
Оператор является оператором хвост .-e
Оператор является файл существует тест .Это по-прежнему оставляет пустые каталоги, которые, возможно, вам не нужны после того, как они были очищены. Это может быть следующая итерация, если это имеет значение.
источник
bash
,mv */* .
работает для меня.