CMD/BAT - [решено] Создать сценарий для ResHacker.

Ответить
Аватара пользователя
E-mpty

CMD/BAT - [решено] Создать сценарий для ResHacker.

Сообщение E-mpty »

Здравствуйте!



Подскажите пожалуйста, возможно ли,создавать файлы сценария пропатчивания ресурсов,для программы ResHacker?

Например: есть папка с названием ресурса (sndvol32.exe),в ней лежат такие файлы: 1.bmp, 2.ico, 31.RES ...

Нужно чтобы на выходе появился текстовый файл (rcscript.txt) с таким содержанием:



Код:

Код: Выделить всё

[FILENAMES]
Exe = "Backup\sndvol32.exe"
SaveAs = "NewFiles\sndvol32.exe"
[COMMANDS]
-addoverwrite "Resources\sndvol32.exe\1.bmp", BITMAP, 1,
-addoverwrite "Resources\sndvol32.exe\2.ico", ICONGROUP, 2,
-addoverwrite "Resources\sndvol32.exe\31.res", DIALOG, 31,

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



Зеленый цвет - дописывает название папки,с которой считывает содержимое,в соответствующее место в строке...

Серый цвет - название файла, в папке.

Синий цвет - дописывает тип ресурса, в зависимости от расшерения файла. Т.е. если расширение файла *.ico то написать ICONGROUP...

Красный цвет - дописывает название, соответствующее имени файла.

Все остальное не изменно, как шаблон...

Реально такое сделать средствами CMD (возможно и дополнительными средствами)?
Аватара пользователя
gora

Re: CMD/BAT - [решено] Создать сценарий для ResHacker.

Сообщение gora »

Структура папок как в Respath-e, скрипт создается прямо в нужной папке

Код:

Код: Выделить всё

@Echo off
setlocal enabledelayedexpansion
For /F "UseBackQ Delims=" %%a In (`Dir Resources /B /O:N 2^>nul`) Do (
	Set "scrpt=Resources\%%a\rcscript.txt"
	Echo [FILENAMES]>!scrpt!
	Echo Exe = "Backup\%%a">>!scrpt!
	Echo SaveAs = "NewFiles\%%a">>!scrpt!
	Echo Log = "Logs\%%a.log">>!scrpt!
	Echo.>>!scrpt!
	Echo [COMMANDS]>>!scrpt!
	For /F "UseBackQ Delims=" %%I In (`Dir Resources\%%a /B /O:EN 2^>nul`) Do (
		If Not %%~xI==.txt (
			If %%~xI==.res Set Resrs=DIALOG
			If %%~xI==.ico Set Resrs=ICONGROUP
			If %%~xI==.bmp Set Resrs=BITMAP
			If %%~xI==.avi Set Resrs=AVI
			Echo -addoverwrite "Resources\%%a\%%I", !Resrs!, %%~nI,>>!scrpt!
		)
	)
)
pause
Exit
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Создать сценарий для ResHacker.

Сообщение amel27 »

ещё вариант - скрипт в каталоге, где и "Resources":



Код:

Код: Выделить всё

Set DIR=Resources
Set TXT=rcscript.txt
Set .BMP=BITMAP
Set .ICO=ICONGROUP
Set .RES=DIALOG
For /R "%DIR%" %%i In (.) Do If Not "%%~xi"=="" CALL :DIREXEC "%%i"
EXIT
:DIREXEC
 Echo [FILENAMES]>"%~1\%TXT%"
 Echo Exe = "Backup\%~nx1">>"%~1\%TXT%"
 Echo SaveAs = "NewFiles\%~nx1">>"%~1\%TXT%"
 Echo.>>"%~1\%TXT%"
 Echo [COMMANDS]>>"%~1\%TXT%"
 For %%i In ("%~1\*") Do Call :COMMANDS "%~1" "%%~i"
Exit /B
:COMMANDS
 If Defined %~x2 Call Echo -addoverwrite "%DIR%\%~nx1\%~nx2", %%%~x2%%, %~n2,>>"%~1\%TXT%"
Exit /B

отдельное спасибо gora за ликвидацию "белых пятен" в постановке задачи... особенно насчет местоположения исходных/конечных файлов и каталогов :)
Аватара пользователя
E-mpty

Re: CMD/BAT - [решено] Создать сценарий для ResHacker.

Сообщение E-mpty »

gora, amel27, спасибо вам большое! Это то что нужно Изображение Я думал написать батник и добавить его запуск в контекстное меню, чтобы при выборе из контекстного меню он создавал рядом с папкой текстовый файл... Но ваш вариант лучше, чем я думал, и сколько времени секономил... спасибо!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»