|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Создание папки по имени файла и перемещение файла в эту папку. |
|
|
CMD/BAT - [решено] Создание папки по имени файла и перемещение файла в эту папку.
|
Пользователь Сообщения: 102 |
Профиль | Отправить PM | Цитировать Добрый день , Помогите пожалуйста с батником.
У меня есть целая куча файлов такаго образца P_434308546FM.JPG , P_434308546TM.JPG Мне нужно чтобы создавалась папка с именем 4343085 и туда перемещались все файлы у которых в название присутствует 4343085. |
|
Отправлено: 20:00, 19-03-2018 |
Ветеран Сообщения: 2723
|
Профиль | Отправить PM | Цитировать @Echo off Set "BoxIn=Z:\Box_In" Set "Mask=P_*.jpg" Set /A NN=7 Set "BoxOut=Z:\Box_Out" FOR /F "usebackq tokens=1,2 delims=_" %%i IN (`2^>nul Dir "%BoxIn%\%Mask%" /B /A:-D`) DO Call :MoveNN "%%i" "%%j" "%BoxIn%" "%BoxOut%" %NN% GoTo :Eof :MoveNN If Not Exist "%~3\%~1_%~2" GoTo :Eof Set "NewDir=%~2" Call Set "NewDir1=%%NewDir:~0,%5%%" Set "NewDir=%~4\%NewDir1%" If Not Exist "%NewDir%" Md "%NewDir%" >nul 2>&1 Move "%~3\%~1_%NewDir1%*%~x2" "%NewDir%\" >nul 2>&1 GoTo :Eof |
------- Отправлено: 22:12, 19-03-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 102
|
Профиль | Отправить PM | Цитировать megaloman, Большое Вам спасибо. Все работает !!!
|
Отправлено: 10:11, 20-03-2018 | #3 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Не знаю куда добавить, конкретной темы такой не нашел, но название этой подходит. Написал для себя скрипт .vbs для "Создание папки по имени файла и перемещение файла в эту папку" из контекстного меню для любых файлов с расширением.
On Error Resume Next if WScript.Arguments.Count = 0 then WScript.Quit Arg = WScript.Arguments(0) set FSO=CreateObject ("Scripting.FileSystemObject") File = Arg FileName = FSO.GetBaseName(File) FileName_ext = FSO.GetFileName(File) ParentFolder = Left(Arg, InStrRev(Arg, "\")) NewFolderPath = ParentFolder & FileName NewFilePath = NewFolderPath & "\" & FileName_ext If not FSO.folderexists (NewFolderPath) then fso.createfolder (NewFolderPath) end if If Not FSO.FileExists(NewFilePath) Then FSO.MoveFile File, NewFolderPath & "\" Else MsgBox "Файл " & FileName_ext & " Уже существует в папке " & NewFolderPath, vbOKOnly + vbExclamation, "Внимание!" End If Set FSO = Nothing Wscript.Quit Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\Folder] "MUIVerb"="Создать папку (файл)" "Extended"="" [HKEY_CLASSES_ROOT\*\shell\Folder\command] @=hex(2):22,00,25,00,77,00,69,00,6e,00,64,00,69,00,72,00,25,00,5c,00,73,00,79,\ 00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,77,00,73,00,63,00,72,00,69,00,\ 70,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,00,22,00,44,00,3a,00,5c,00,21,\ 04,3e,04,37,04,34,04,30,04,3d,04,38,04,35,04,20,00,3f,04,30,04,3f,04,3a,04,\ 38,04,2e,00,76,00,62,00,73,00,22,00,20,00,22,00,25,00,31,00,22,00,00,00 Команда вызова "%windir%\system32\wscript.exe" "D:\Создание папки.vbs" "%1" путь соответственно править по своему |
Последний раз редактировалось ripton07, 05-03-2022 в 01:54. Отправлено: 01:48, 05-03-2022 | #4 |
Пользователь Сообщения: 81
|
Профиль | Отправить PM | Цитировать Цитата ripton07:
|
||
Отправлено: 11:36, 29-04-2023 | #5 |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать Цитата denis19:
NewFolderPath = ParentFolder & FileName на NewFolderPath = ParentFolder & 111 |
|
Отправлено: 18:45, 29-04-2023 | #6 |
Пользователь Сообщения: 81
|
Профиль | Отправить PM | Цитировать Цитата shadowbat:
|
|
Отправлено: 20:51, 29-04-2023 | #7 |
Старожил Сообщения: 267
|
Профиль | Отправить PM | Цитировать не решение 1го поста но
решение для названия темы: вариант просто для одного любого файла через драгндроп на батник @echo off chcp 1251>nul set File=%~1 for %%F in ("%File%") do ( if not exist "%%~dpnF" Md "%%~dpnF" move "%File%" "%%~dpF%%~nF\%%~nxF">nul ) exit /b Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\DirByFile] "MUIVerb"="Создать папку по имени файла" "Icon"="C:\\Windows\\System32\\shell32.dll,3" [HKEY_CLASSES_ROOT\*\shell\DirByFile\command] @="D:\\111\\Создать папку по имени файла.bat \"%1\"" Цитата denis19:
NewFolderPath = ParentFolder & "New" NewFolderPath = ParentFolder & "Folder" |
|
Последний раз редактировалось shadowbat, 02-05-2023 в 04:57. Отправлено: 04:31, 02-05-2023 | #8 |
Пользователь Сообщения: 81
|
Профиль | Отправить PM | Цитировать Цитата shadowbat:
|
|
Отправлено: 21:37, 03-05-2023 | #9 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать megaloman, Добрый день, может быть подскажете решение следующей задачи, в папке файлы называются "ФИО+служ.инфа.doc", как раскидать их по папкам с критерием только ФИО, то есть создается папка ФИО и туда все файлы сливаются с ФИО и разной служебной информацией?
Пробовал адаптировать скрипт из 2 поста, ничего не происходит после его запуска( |
Отправлено: 14:25, 14-07-2023 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Синтаксическая ошибка в имени файла, имени папки или метке тома | Maestro Deno | Microsoft Windows 7 | 8 | 05-03-2017 19:21 | |
Доступ - Синтаксическая ошибка в имени файла, имени папки или метке тома | Maestro Deno | Microsoft Windows 7 | 1 | 05-03-2017 16:18 | |
CMD/BAT - Удаление и создание папки с определенными правами на эту папку | Mans2k | Скриптовые языки администрирования Windows | 1 | 29-01-2013 16:59 | |
CMD/BAT - [решено] Перемещение файлов из одной папки в разные в зависимости от имени файла | Sarge81 | Скриптовые языки администрирования Windows | 4 | 20-09-2011 04:20 | |
CMD/BAT - [решено] Созд.*.txt по имени файла, с перемещением *.txt и файла в папку с именем файла. | OSArev | Скриптовые языки администрирования Windows | 2 | 30-01-2011 11:58 |
|