![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - создание бат для архивирования файла с переименованием архива и файла в архиве |
|
CMD/BAT - создание бат для архивирования файла с переименованием архива и файла в архиве
|
Новый участник Сообщения: 3 |
Ребята помогите!!! есть файлы :*.sigs, *.zip.sigm, *.zip. Мне нужно файл с расширением*.zip.sigm переименовать (для примера s52006m520087_21102_445136_00.zip.sigm в M520087S52006_21102_445136_00.zip.sigm то есть сменить последовательность символов с s52006m520087-на M520087S52006 из примера понятно что берутся символы m520087 и s52006 и переставляются местами )
Вот код он работает Echo off ::chcp 1251 setlocal enabledelayedexpansion rem этот блок переименовывает файл sigm for %%i in ("C:\Users\%USERNAME%\Desktop\reestry\*.zip.sigm") do (set c=%%~ni ren "C:\Users\%USERNAME%\Desktop\reestry\%%~ni.sigm" "!c:~6,7!!c:~0,6!!c:~13,100!.sigm") pause; затем упаковать все файлы и сам архив переименовать по такому же принципу вот код он работает Echo off ::chcp 1251 setlocal enabledelayedexpansion for %%i in ("C:\Users\%USERNAME%\Desktop\reestry\*.sigs") do ( set b=%%i "C:\Program Files\7-zip\7z.exe" a -tzip "!b:~0,-8!oms" "%%i" ) for %%i in ("C:\Users\%USERNAME%\Desktop\reestry\*.sigm") do ( set b=%%i "C:\Program Files\7-zip\7z.exe" a -tzip "!b:~0,-8!oms" "%%i" ) for %%i in ("C:\Users\%USERNAME%\Desktop\reestry\*.zip") do ("C:\Program Files\7-zip\7z.exe" a -tzip "C:\Users\%USERNAME%\Desktop\reestry\%%~ni.oms" "%%i") del "C:\Users\%USERNAME%\Desktop\reestry\*.zip" del "C:\Users\%USERNAME%\Desktop\reestry\*.sigs" del "C:\Users\%USERNAME%\Desktop\reestry\*.sigm" for %%i in ("C:\Users\%USERNAME%\Desktop\reestry\*.oms") do ( set c=%%~ni ren "C:\Users\%USERNAME%\Desktop\reestry\%%~ni.oms" "!c:~6,7!!c:~0,6!!c:~13,100!.oms" ) pause; ОН РАБОТАЕТ но если я не переименовываю файл s52006m520087_21102_445136_00.zip.sigm в M520087S52006_21102_445136_00.zip.sigm то создаются два архива. P/S первоначально файлы в названии все одинаковы и все работает .. пробовал и по маске и так не получается помогите что я не так делаю или переработал башка не варит.... За ранее спасибо! |
|
Отправлено: 14:14, 12-11-2021 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:17, 12-11-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Если только переименование, то:
@Echo Off cls Set "BoxIn=Z:\Box_In" Set "Mask=^s[0-9][0-9][0-9][0-9][0-9]m[0-9][0-9][0-9][0-9][0-9][0-9]_.*\.zip\.sigm$" Set "L0=13" Set "L1=0,6" Set "L2=6,7" For /F "usebackq delims=" %%f In (`2^>nul Dir "%BoxIn%\*.*" /B /A:-D ^|FindStr /R /I /C:"%Mask%"`) Do ( Set "Name=%%f" Call Ren "%BoxIn%\%%f" %%Name:~%L2%%%%%Name:~%L1%%%%%Name:~%L0%%%" ) pause Exit /B |
------- Последний раз редактировалось megaloman, 12-11-2021 в 15:37. Отправлено: 15:27, 12-11-2021 | #3 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать нет... мне нужно упаковать файлы в один архив с разными расширениями и именами. второй скрипт работает если имена файлов совпадают... а если имена файлов разные то файлы упаковываются в разные архивы.. что мне нужно изменить в батнике, что бы он упаковал в архив разные файлы . если прочитать внимательнее. то я написал . что первоначально нужно: сначала переименовать один файл и потом упаковать файлы с разными именами в один архив и обозвать архив так же как и этот переименованный файл. вот более понятно надеюсь написал. Спасибо!
просто не пойму что не так делаю... второй скрипт работает как надо . если все файлы с именем одинаковы. как только переименовываю файл в M520087S52006_21102_445136_00.zip.sigm он упаковывается в другой архив . |
Отправлено: 15:45, 12-11-2021 | #4 |
Новый участник Сообщения: 3
|
Профиль | Отправить PM | Цитировать сама задача выглядит так: поменять местами символы файла: s52006m520087_21102_445136_00.zip.sigm в M520087S52006_21102_445136_00.zip.sigm, упаковать файлы в один архив: s52006m520087_21102_445136_00.zip.sigs, M520087S52006_21102_445136_00.zip.sigm, S52006M520087_21102_445136_00.zip. И сам архив zip cохранить с именем как у M520087S52006_21102_445136_00.zip.sigm то есть, должен получится архив M520087S52006_21102_445136_00.zip а в нем M520087S52006_21102_445136_00.zip.sigm,S52006M520087_21102_445136_00.zip,s52006m520087_21102_445136_ 00.zip.sigs)
|
|
Последний раз редактировалось deathspirit, 12-11-2021 в 16:06. Отправлено: 16:00, 12-11-2021 | #5 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать deathspirit,
Как-то туговато
Цитата:
Какие исходные файлы: s52006m520087_21102_445136_00.zip.sigm s52006m520087_21102_445136_00.zip.sigs -??????????? S52006M520087_21102_445136_00.zip В том числе и .zip? В создаваемом архиве M520087S52006_21102_445136_00.zip 3 файла: M520087S52006_21102_445136_00.zip.sigm, S52006M520087_21102_445136_00.zip, s52006m520087_21102_445136_ 00.zip.sigs В том числе и .zip? И, главное, набор этих 3 файлов единственный, или в папке есть аналогичные файлы немного с другими именами, что меняется в именах? B в ответе должно получиться много файлов типа M520087S52006_21102_445136_00.zip с нужным набором имен? Что при этом надо делать с исходными файлами? @Echo Off cls Set "BoxIn=Z:\Box_In" Set "Mask=^s[0-9][0-9][0-9][0-9][0-9]m[0-9][0-9][0-9][0-9][0-9][0-9]_" Set "L0=13,-9" Set "L1=0,6" Set "L2=6,7" Set "Ext1=zip.sigm" Set "Ext2=zip.sigs" Set "Ext3=zip" Set Arc="C:\Program Files\7-Zip\7z.exe" a -tzip -sdel Set "MExt=%Ext1:.=\.%" Pushd %BoxIn% || (Echo Folder "%BoxIn%" Not found. &Pause &Exit /B 2) For /F "usebackq delims=" %%f In (`2^>nul Dir "*.*" /B /A:-D ^|FindStr /R /I /C:"%Mask%.*\.%MExt%$"`) Do ( Set "Name=%%f" Call :MyArc "%%f" "%%Name:~%L1%%%" "%%Name:~%L2%%%" "%%Name:~%L0%%%" ) Popd pause Exit /B :MyArc Ren "%~1" "%~3%~2%~4.%Ext1%" %Arc% "%~3%~2%~4" "%~3%~2%~4.%Ext1%" "%~2%~3%~4.%Ext2%" "%~2%~3%~4.%Ext3%" Exit /B rem 0 6 13 rem | 6 || 7 || | -9 | rem s52006m520087_21102_445136_00.zip.sigm rem | 13 | |
|
------- Последний раз редактировалось megaloman, 12-11-2021 в 21:57. Отправлено: 20:18, 12-11-2021 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Создание БАТ для переименования файла по определённой схеме | MTIsur | Скриптовые языки администрирования Windows | 3 | 15-04-2019 20:24 | |
CMD/BAT - Перепаковка zip архива с переименованием файла | Павел_Будков@vk | Скриптовые языки администрирования Windows | 2 | 02-02-2018 20:36 | |
[решено] просмотр файла в архиве без распаковки архива | jah | Хочу все знать | 16 | 21-06-2014 21:00 | |
Создание Бат-файла. | Bond01 | Тест-форум | 3 | 08-05-2010 21:34 |
|