Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - создание бат для архивирования файла с переименованием архива и файла в архиве

Ответить
Настройки темы
CMD/BAT - создание бат для архивирования файла с переименованием архива и файла в архиве

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ребята помогите!!! есть файлы :*.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
Благодарности: 564

Профиль | Отправить PM | Цитировать


вот переименование распакованных файлов
PowerShell
Код: Выделить весь код
$files = gci *.sigm -af
$files|% {
  $_.BaseName -Match '(\D\d+)(\D\d+)(.*)'|Out-Null
  $newName = '{1}{0}{2}{3}' -f $Matches[1], $Matches[2], $Matches[3], $_.Extension
  rni $_.FullName $newName
}

Отправлено: 15:17, 12-11-2021 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить PM | Цитировать


нет... мне нужно упаковать файлы в один архив с разными расширениями и именами. второй скрипт работает если имена файлов совпадают... а если имена файлов разные то файлы упаковываются в разные архивы.. что мне нужно изменить в батнике, что бы он упаковал в архив разные файлы . если прочитать внимательнее. то я написал . что первоначально нужно: сначала переименовать один файл и потом упаковать файлы с разными именами в один архив и обозвать архив так же как и этот переименованный файл. вот более понятно надеюсь написал. Спасибо!

просто не пойму что не так делаю... второй скрипт работает как надо . если все файлы с именем одинаковы. как только переименовываю файл в M520087S52006_21102_445136_00.zip.sigm он упаковывается в другой архив .

Отправлено: 15:45, 12-11-2021 | #4


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить 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


Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


deathspirit,
Как-то туговато
Цитата:
поменять местами символы файла:
s52006m520087_21102_445136_00.zip.sigm
M520087S52006_21102_445136_00.zip.sigm, упаковать файлы в один архив:
s52006m520087_21102_445136_00.zip.sigm
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
Не догоняю:
Какие исходные файлы:
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



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - создание бат для архивирования файла с переименованием архива и файла в архиве

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход