Показать полную графическую версию : Перемещение pdf файлов по имени в папку с аналогичном названием имени файла
SurkovAA
09-02-2022, 11:32
Доброго времени суток уважаемые господа.
Есть задачка, в одной сетевой папке, находятся папки и pdf файлы.
Имена папок выглядят как:
Иванов Иван Иванович 14-;
Васильев Дмитрий Васильевич 11.20;
Властелин Колец Фродович 01.09.1200.
Имена PDF файлов, аналогичны названию папок.
Требуется все pdf файлы растасовать по папкам с аналогичным названием, желательно сделать перемещение, а не копирование.
А если папки не существует с таким именем, создать с именем pdf файла и закинуть туда pdf файлик.
Возможно ли сделать такой батик? :help:
Навскидку:
for /f "delims=*" %%i in ('dir /b *.pdf) do (md "%~ni" & move "%%i" "%~ni\")
SurkovAA
09-02-2022, 12:21
К сожалению ни чего не происходит, после запуска батника
megaloman
09-02-2022, 12:54
@Echo Off
cls
>nul Chcp 1251
Set "FileIn=Z:\Box_In\*.pdf"
Set "BoxOut=Z:\Box_Out"
FOR /F "usebackq delims=" %%f In (`2^>nul Dir "%FileIn%" /S /B /A:-D`) DO (
2>nul Md "%BoxOut%\%%~nf"
>nul Move /Y "%%f" "%BoxOut%\%%~nf\"
)
pause
Exit /B
Пути пропишИте свои.
желательно сделать перемещение, а не копирование. »Вот еще вариант: если в папке, например, "Иван Иванович" только один файл "Иван Иванович.pdf", то не вижу смысла после перемещения файла оставлять пустую папку "Иван Иванович". Удаляем ее:@Echo Off
cls
>nul Chcp 1251
Set "FileIn=Z:\Box_In\*.pdf"
Set "BoxOut=Z:\Box_Out"
FOR /F "usebackq delims=" %%f In (`2^>nul Dir "%FileIn%" /S /B /A:-D ^|Sort /R`) DO (
2>nul Md "%BoxOut%\%%~nf"
>nul Move /Y "%%f" "%BoxOut%\%%~nf\" &&2>nul Rd "%%~dpf"
)
pause
Exit /B
Если в папке что-то еще, папка удалена не будет.
Пути пропишИте свои. »
Почему вы всегда здесь делаете "И" заглавной?)
megaloman
09-02-2022, 13:21
Fors1k, Почему вы всегда здесь делаете "И" заглавной? » Чтобы обозначить ударение. Прямого запрета на это в правилах нет, хотя в рекомендациях видим:Для выделения или постановки ударения на слово или фразу, используйте жирный шрифт или выделение цветом. Не используйте ЗАГЛАВНЫЕ буквы.Опять же, здесь речь идёт о смысловом ударении на слово, но никак не на ударение внутри слова. Мне гораздо проще обозначить ударение в слове большой буквой.
А пропИшиете и пропишИте - несут немного разную смысловую нагрузку.
Или, еще лучше, писАть или пИсать. :)
Чтобы выделить ударение »
Это ударение - единственно возможное. Если же ударение будет на первую букву "и", то вторая уже будет "и" "е".
Так что здесь путаница в ударениях невозможна :)
SurkovAA
09-02-2022, 13:34
А подскажите в каком месте, необходимо указывать пути?
Я в этих сверх технологиях, очень плохо разбираюсь.. Поэтому обратился к вам, богам этого дела.
Разобрался, работает, Спасибо уважаемый! Очень выручили!
указывать пути? »
Пути или путь?
в одной сетевой папке, »
megaloman
09-02-2022, 13:46
SurkovAA, в одной сетевой папке, находятся папки и pdf файлы. »Я в этих сверх технологиях, очень плохо разбираюсь.. »Указать путь к файлу - это не сверхвысокая технология, это азбука.
В моих батниках специально выделяю такие вещи отдельными строками, чтобы их было удобнее менять. В Вашем случае (опять же, я не знаю Ваших реальных путей): Set "FileIn=\\ИмяСервера\ИмяРасшареннойПапки\ИмяПапки\*.pdf"
Set "BoxOut=Полное имя папки, где Вы создаёте папки с именами и куда Вы перемещаете свои pdf"
Требуется все pdf файлы растасовать по папкам с аналогичным названием »
Я предположил, что Вы перемещаете файлы на другой ресурс или другую папку.
SurkovAA
09-02-2022, 14:07
Я предположил, что Вы перемещаете файлы на другой ресурс или другую папку. »
Нет, перемещать ни куда не надо, требуется просто навести порядок в сетевой папке, в которой ооочень много pdf файлов и папок. Требуется все pdf файлы, распихать по папкам с аналогичным названием, не более..
При этом, если папки не существует, то создать папку с таким же именем как у pdf файла и переместить в папку сам файл. Если же папка существует с таким же названием как у pdf файла, то просто перенести pdf файл в уже имеющуюся папку с таким же названием.
Тока что подумал, если в папке допустим уже есть pdf файл с таким же названием, то при перемещении он же его заменит? Можно ли добавить в этом случае цифру в названии к перемещаемому файлу, что бы тот его не стер?
megaloman
09-02-2022, 17:16
требуется просто навести порядок в сетевой папке, в которой ооочень много pdf файлов и папок. »Давайте к постановке задачи.
У Вас есть сетевая папка:
\\Server\Расшаренная папка\сетевая папка
Там есть:
папка1\файл1.Pdf
папка2\файл2.Pdf
.....
папкаN\файлN.Pdf
файл111.Pdf
файл222.Pdf
файл333.Pdf
Врпросы:
Имена "папкаN" всегда == "файлN" ?
Если "папкаN"=="файлN" что делать?
Если "папкаN"<>"файлN" что делать?
Возможно ли "папкаK\файлK1.pdf
Возможно ли "папкаK\файлK2.pdf
Возможно ли "папкаK\файлK3.pdf
Возможно ли "папкаK\файлK4.pdf
Возможно ли "папкаK\файлK5.pdf
что тогда делать?
Возможно ли "папкаI\папкаII\файлII.pdf" что тогда делать?
Файлы перемещаем так?:
файл111.Pdf -> "папка111\файл111.Pdf"
файл222.Pdf -> "папка222\файл222.Pdf"
файл333.Pdf -> "папка333\файл333.Pdf"
Или Вам просто надо рассмотреть корень папки \\Server\Расшаренная папка\сетевая папка\*.pdf и их разбросать по подпапкам:
папка111\файл111.Pdf
папка222\файл222.Pdf
папка333\файл333.Pdf
megaloman
09-02-2022, 18:27
Если Вам просто надо рассмотреть корень папки \\Server\Расшаренная папка\сетевая папка\*.pdf и их разбросать по подпапкам: »@Echo Off
cls
>nul Chcp 1251
Set "BoxIn=\\192.168.100.23\Test2\MyPdf"
Set "Mask=*.pdf"
FOR /F "usebackq delims=" %%f In (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D`) DO (
If Not Exist "%BoxIn%\%%~nf\%%f" (
2>nul Md "%BoxIn%\%%~nf" &>nul Move "%BoxIn%\%%f" "%BoxIn%\%%~nf\"
) Else (
Call :MyMove "%BoxIn%\%%~nf" "%BoxIn%\%%f" 100
)
)
pause
Exit /B
:MyMove
Set /A N=%3
If Not Exist %1 Md %1
:Begin
Set /A N+=1
If Exist "%~1\%~n2 (%N:~1%)%~x2" GoTo :Begin
>Nul Move %2 "%~1\%~n2 (%N:~1%)%~x2"
Exit /B
Можно ли добавить в этом случае цифру в названии к перемещаемому файлу, что бы тот его не стер? »Учтено.
SurkovAA
09-02-2022, 19:00
Воот, то что нужно было! Спасибо огромное и человеческое! Здоровья вам огромного и низкий поклон! Выручили.. Не представляете даже как..
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.