Пакетный скрипт: перемещение файлов в соответствующие папки с похожими именами.

Пакетный скрипт: перемещение файлов в соответствующие папки с похожими именами.

Я пытаюсь создать практику без использования бумаги и хранить все данные пациентов в электронном виде. Я уже создал 8000 папок (1 - 8000) и теперь мне нужно переместить около 16000 файлов .pdf в соответствующие папки, например, "202 Medical Aid Card", "202 Dr Referral", "202 Sick Note" нужно переместить в папку "202". Все файлы хранятся в одной папке.

Заранее спасибо.

решение1

Если ваша ситуациячтопросто, то вам следует просто продолжать вводить команды операционной системы, подобные следующей:

MOVE 202* 202\

И так далее.

решение2

Расширяя другой текущий ответ на этот вопрос:

  1. Откройте новый текстовый документ в текстовом редакторе (например, в Блокноте Windows) и скопируйте следующие пакетные инструкции:

    FOR /L %%G IN (1,1,8000) DO (
        MOVE ".\%%G *" ".\%%G\"
        )
    
  2. Сохраните этот файл как ex. sort_files.bat.

  3. Поместите этот .batфайл в ту же папку, где находятся файлы, которые вы хотите отсортировать.

  4. Запустите sort_files.batего, дважды щелкнув по нему или выполнив из командной строки.

Предостережения

  • .\%%G *предполагает формат имени файла, например . 202 Medical Aid CardЕсли вы пропустите пробел (например .\%%G*), ваши файлы НЕ будут отсортированы правильно, и вы получитеогромныйголовная боль (так что не делайте этого! =Р).

  • .\%%G\предполагает, что ваши существующие папки находятся в том же каталоге, что и ваши файлы. Если это не так, замените .на фактический путь к каталогу вашей папки (например C:\path\to\folder\directory\%%G\, ).

  • В выражении (1,1,8000)последнее значение (например, 8000) определяет, сколько циклов обрабатывается в целом. Вы можете рассмотреть возможность сокращения (1,1,8000)до управляемого числа (например, (1,1,10)) для первоначального тестирования вашего пакетного файла (и проверки любых результатов) перед тем, как перейти к (1,1,8000).


Примечания

  • %%G— это пакетная переменная, используемая для подсчета в цикле. Она заменяется числом по мере обработки цикла. Поэтому MOVE ".\%%G *" ".\%%G\"становится ex. MOVE ".\1 *" ".\1\".

  • В команде MOVE ".\%%G *" ".\%%G\":

    • Кавычки технически необходимы только в том случае, если путь содержит пробелы (например, ".\%%G *"), но используются как в исходном пути ( .\%%G *), так и в целевом пути ( .\%%G\) для обеспечения согласованности.

    • .— это сокращенный способ сказать «текущий каталог».

    • *является подстановочным знаком. Так, например, ex. .\%%G *переводится как "любой файл в текущем каталоге, начинающийся с %%G(например 1), за которым следует пробел и любые другие символы ( *)".


Рекомендации

Связанный контент