Перемістіть файли з декількох папок у батьківський каталог з командним рядком


8

У мене є кілька файлів .rar у кількох папках:

C:\Docs\Folder1\rarfile1-1.rar
C:\Docs\Folder1\rarfile1-2.rar
C:\Docs\Folder1\rarfile1-3.rar  

C:\Docs\Folder2\rarfile2-1.rar
C:\Docs\Folder2\rarfile2-2.rar
C:\Docs\Folder2\rarfile2-3.rar  

C:\Docs\Folder3\rarfile3-1.rar
C:\Docs\Folder3\rarfile3-2.rar
C:\Docs\Folder3\rarfile3-3.rar  

Я хочу перемістити всі файли .rar у батьківський каталог "C: \ Docs". У мене набагато більше 3-х папок, тому я думав зробити пакетний файл чи щось таке. Які були б команди для цього?
Дякую


Я шукав подібне питання і вважав цю відповідь корисною.
лалтоми

Відповіді:


15

Я тільки що зробив додаток для командного рядка, яке робить саме це (плюс показує статистику) і шукав, чи хтось намагався це зробити, щоб я міг поділитися ним і врятувати когось від необхідності розібратися.

Дуже весело було писати. Потрібна .NET 3.5, працює з командного рядка, дзвінок із параметром -h або немає для використання.

MoveFilesUpFromSubfolders
(вихідний код)

Відгуки плюс! :)

О, і скріншот, як це виглядає:

                               


3
+1 Написання програми для вирішення чиєїсь проблеми. Це зобов’язання!
Лі-аун Іп

1
@ Li-aungYip Дякую за комплімент! Крім того, через обставини, у мене більше немає жорсткого диска, на якому я кодувався в той час, коли я це зробив (втративши це та багато інших речей), тому я дуже радий бачити його тут і завантажив його зараз ( kudos для Mediafire, щоб зберігати його так довго з кількома завантаженнями, і мені пощастило, що я не зберігав його в Megaupload!). Тож якщо ви поставите це в перспективі, тим більше ви дасте, тим більше отримуєте :)
Каміло Мартін

Чудова робота! +1 і 50 відс. Я знаю, що це 4,5 років, але це було дуже корисно для мене, оскільки я завантажив 90+ файлів, які входили в 90+ папок. Це допомогло мені помістити всі файли у його батьківську папку.

Єдина критика, яку я маю - це те, що коли я намагався це використати, виникала помилка щодо проблеми з папкою, яка постійно з'являється, і в ній не було вказано, чому. Тільки використовуючи команду -t, я зміг визначити, чому виникає проблема з папкою (бо вона названа 250+ символами). Це легко обійти, виділивши всі папки та перейменувавши одну з них (тоді решта буде додана цифрою).

@ edmastermind29 Я дуже радий знати, що такий мій старий код ще комусь корисний. Вірите чи ні, архів вихідного коду був знятий з медіафайру за те, що він автоматично позначений як порушення авторських прав (що досить абсурдно, якщо немає відео чи аудіо, а лише текст), і я не знаю, як я це зробив . Якщо вам це буде корисно, я б написав одноразовий баш, щоб вирішити подібну проблему, щось на зразок mv dir/sub/* dir; rmdir dir/subциклу.
Каміло Мартін

7

Спробуйте:

for /d %f in (docs\*) do (
pushd %f
move .\*.* ..
popd
)

Чи можете ви пояснити це трохи більше?
Нік

@ Nick: Для всіх папок у docsвведіть папку. Перемістіть усі файли з поточної папки до батьківської папки. Поверніться до батьківської папки.
Hello71,

Це pushdі popdнасправді не потрібно. cdпрацювало б добре.
Привіт71,

Як пояснив Hello71. Також це можна зробити одним рядком:for /d %f in (docs\\*) do move %f\\*.* docs
BillP3rd

1
NB. Ні оригінал вище, ні однолінійка не матимуть належного завдання з дублюючими іменами файлів.
BillP3rd

5

Що ж, відповідь на ваше запитання дуже проста. Це не сценарій, але це буде робити.

Я припускав, що ти працюєш під Windows.

  • Поставте себе у каталог C: \ Docs
  • Натисніть F3 (пошук)
  • Шукати * .rar
  • Натисніть Crtl + A
  • Натисніть Ctrl + X
  • Закрийте вікно пошуку та знову перейдіть до C: \ Dosc в Explorer
  • Вставте вирізані файли, натиснувши CTRL + V.

+1 для приємного та простого вирішення без будь-якої сторони чи сценаріїв.
Сякур Рахман

+ 1 найкращий і найшвидший метод A +++
Sickest

3

Всмоктування працювало для мене в цьому питанні.

Suction - це безкоштовне портативне додаток, яке допоможе розібратися у брудних папках у найкоротші терміни.

Відсмоктування працює шляхом консолідації батьківських каталогів. Наприклад, якщо у вашому каталозі зображень повно непотрібних папок, перетягніть папку в інтерфейс Suction, і вона знищить папки, залишивши вас лише з файлами. Це також корисно людям, які завантажують багато матеріалів.


0

Приклади копіювання або переміщення файлів з підкаталогів в один каталог

для / f "tokens = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') зробіть копію / y "% a" C: \ Temp \ epub.

для / f "tokens = *"% a in ('dir "C: \ Temp \ Epub * .epub" / s / b') робити переміщення / y "% a" C: \ Temp \ epub

"жетони = * - це захоплення шляхів спеціальними символами


-1

Це має працювати:

move C:\Docs\*\* C:\Docs

2
Я отримую помилку: ім'я файлу, ім'я каталогу або синтаксис мітки тома неправильно.
Нік

** не спрацювало
Нік

Вам потрібно переконатися, що ви вводите "\", і що його редактор тексту не уникне.
Hello71,

Видача цієї команди з підказки CMD (в Windows 7) створює помилку, яку зазначив Нік.
BillP3rd

Це не спрацює. * не працює належним чином для папок. Треба вивести сторонні програми, такі як Total Commander.
surfasb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.