Я исследовал этот сайт и многие другие в сети, и я не совсем понял, что мне нужно для выполнения этой задачи.Переместить несколько PDF-файлов в несколько папок на основе имен неполных папок
У меня есть папка с 1000 PDF-файлами. Каждый PDF является формой членства в спортзале с именем члена тренажерного зала и датой начала в имени файла. Мне нужно перенести эти PDF-файлы в основную папку, в которой уже есть подпапки. Эти подпапки соответствуют имени членов тренажерного зала, но они не содержат дат. Однако они содержат специальный код, заключенный в круглые скобки.
Пример: В моей папке GymForms содержится 1000 PDF-файлов. (Источник папки) C: \ Users \ BlackPC \ Desktop \ GymForms
Алан Гивенса - H-9 1-16-2016.pdf
Jane Doe - H-9 7-10-2015.pdf
Джон Генри - H-9 1-16-2016.pdf
William Falls - H-9 7-10-2015.pdf
My Master Folder (Папка назначения) содержит вложенные папки со всеми именами участников гимнастики. C: \ Users \ BlackPC \ Desktop \ ActiveMembers
Алан Гивенс (33U)
Jane Doe (05R)
Джон Генри (05S)
William Falls
Так пакетный файл ниже - это то, что у меня есть (которое было изменено из сообщения другого пользователя) ... и оно будет работать, если папка-член (папка-получатель) не содержит скобок. Другими словами, когда партия выполняется, файлы PDF для Алана Гивенса, Джейн Доу и Джона Генри не будут перемещаться/сортироваться в соответствующие папки. Но PDF-файл для члена «William Falls» будет сортироваться в правильной папке без каких-либо проблем.
Так что я надеюсь, что кто-то может помочь мне исправить это и заставить его делать то, что я хочу? В сущности мне нужно, чтобы этот пакетный файл был изменен, поэтому PDF-файл все еще может сортироваться, когда папка назначения содержит скобки в имени. Или пакетный файл изменен, чтобы сортировать файлы PDF в папках назначения на основе первых 9 символов имени папок?
Заранее благодарен!
-batch Файл-
@echo off
setlocal enableextensions disabledelayedexpansion
pushd "C:\Users\HPC6250\Desktop\GymForms"
for /d %%I in (C:\Users\HPC6250\Desktop\ActiveMembers\*) do (
for %%F in (*) do (
for /f %%A in ('echo %%~nF ^| find /i "%%~nI"') do (
set /p a="Moving %%F to %%I... "<NUL
move "%%F" "%%I" >NUL
echo Done.
)
)
)
popd
Мои шляпы от вас, мой друг. Ваше кодирование .bat работало как шарм и делало именно то, что мне было нужно. Благодарим вас за быстрое опубликование решения. Я действительно ценю это, потому что вы избавили меня от головной боли! – Joe21