|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] ResHacker.cmd |
|
|
CMD/BAT - [решено] ResHacker.cmd
|
Ветеран Сообщения: 842 |
Профиль | Отправить PM | Цитировать Пмогите написать батник для ResHacker.exe?
Мне надо чтоб файл лежал как обычно %ProgramFiles%\ResHacker\ResHacker.exe, но при этом корректно выполнялся в cmd.exe Сначала, я просто накатал такое ResHacker.cmd: @start C:\~\Apps\ResHacker\ResHacker.exe "%1" %* ( во-первых я лишь интуитивно понимаю смысл этого - "%*" ) Во-вторых, как мне показалось ResHacker игнорирует вольный ввод, и всё понимает буквально. Вот его справка: Command line scripts have 2 general forms: 1. Single commands: ResHacker.exe command command_parameters 2. Multiple commands: ResHacker.exe -script scriptfile Single Commands: command and command_parameters: -add ExeFile, SaveAsFile, ResourceFile, ResourceMask -addskip ExeFile, SaveAsFile, ResourceFile, ResourceMask -addoverwrite ExeFile, SaveAsFile, ResourceFile, ResourceMask -modify ExeFile, SaveAsFile, ResourceFile, ResourceMask -extract ExeFile, ResourceFile, ResourceMask -delete ExeFile, SaveAsFile, ResourceMask @if "%1"=="" C:\~\Microsoft.NET\Framework\v2.0.50727\ilasm.exe & goto sh @C:\~\Microsoft.NET\Framework\v2.0.50727\ilasm.exe "%1" %* :sh В двух словах, как зделать чтоб в одном случае было "%1" "%2", а в другом "%1" "%2" "%3" "%4" в зависимости от ввода? |
|
------- Отправлено: 20:10, 26-11-2009 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Парни, вы что не умеете скрипты писать, неповерю? Или я что-то опять непонятное пишу?
вот два параметра комманд строки: ResHacker.exe -script scriptfile а вот пять ResHacker.exe -add ExeFile, SaveAsFile, ResourceFile, ResourceMask надо зделать так, чтоб батник передавал программе именно вводимое юзером количество параметров. всего вариантов два! надо как-то это через IF логику организвать, я неумю ?? упс, я не прав, вот третьий вариант ещё {-extract ExeFile, ResourceFile, ResourceMask} если параметров нет, то должен просто запуститься бинарь @start %ProgramFiles%\ResHacker\ResHacker.exe впрочем эту строку я и сам добавить могу, это уже не важно. |
------- Отправлено: 18:17, 27-11-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Deadooshka Сообщения: 2512
|
Профиль | Отправить PM | Цитировать Цитата semiono:
|
|
Отправлено: 03:48, 28-11-2009 | #3 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать я не очень Вас понимаю. лишь бы работало! чем проще тем лучше...
у меня есть "традиция", я ко всем программам %ProgramFiles% храню батники в system32 на всякий случай, но обычно там много не надо бывает, просто запуск из cmd.exe А в данном случае ResHacker имеет поддержку коммандной строки и поэтому хочется чтобы всё это тоже работало. И возможно для других прог тоже пригодиться такое знание! И было бы удобно тогда не вводя путь к ResHacker запустить его с параметрами в любой текущей директории... |
------- Отправлено: 16:40, 28-11-2009 | #4 |
Deadooshka Сообщения: 2512
|
Профиль | Отправить PM | Цитировать Цитата semiono:
Вам наверно проще сделать несколько ярлыков с разными параметрами запуска. |
||
Отправлено: 18:34, 28-11-2009 | #5 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать я всё ввожу в cmd.exe, либо ввод должен осуществляться любым файлом - temp.cmd, (не ResHacker.cmd)
так как будто он работает с обычным ...\ResHacker.exe (просто чтобы не писать каждый раз пути к ...\ResHacker.exe в консоли и в скриптах temp.cmd.) Цитата Sham:
хотя можно написать много вариантов ResHacker1.cmd, и вызывать нужный но это же не дело совсем, при этом надо запомнить какой для каких целей )) Кстати, может вот так ....\ResHacker.exe "%1" "%2" "%3" "%4" "%5" "%6" "%7" и ещё и >NULL в конце добавить? Я пока пишу, надо тоже проверить... Разве лишнии параметры не должны игнорироваться? Или они будут как ввод восприниматься? И для чего >null вообще обычно используют? Мой пример выше для ilasm.exe хорошо показывает, что я хочу, но только он не совершенный. ResHacker.cmd - это просто пернаправлятель всего ввода к самому файлу... |
|
------- Последний раз редактировалось semiono, 28-11-2009 в 19:08. Отправлено: 18:49, 28-11-2009 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать semiono, чем не устраивает:
* добавление путей в Path; * если так любите команду start «xxx» — добавление приложения в подраздел «SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths» разделов HKLM/HKCU; * создание aliases с помощью «doskey.exe»? Зачем, в конце концов, как-то извращаться в пакетном файле, если банальный %* передаст весь набор параметров, сколько бы их ни было: |
Отправлено: 19:40, 28-11-2009 | #7 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать А так значит моя ошибка была в этом: "%1" %*
Понял! Достаточно только этого: %* Цитата Iska:
\CurrentVersion\App Paths у меня итак всегда включен, так как я всё что только есть всегда использую! Но это для меню Run подходит, но не для cmd.exe. Всмысле, когда нет параметров тогда start самособой актуально и для батников. Спасибо! |
|
------- Отправлено: 20:52, 28-11-2009 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата semiono:
Попробуйте добавить содержимое такого файла в реестр: ResHacker.exe.reg REGEDIT4 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ResHacker.exe] @="C:\\Program Files\\Resource Hacker\\ResHacker.exe" DemoStart.cmd На попытку выполнить «ResHacker.exe» из пакетного файла — Вы увидите отлуп: Цитата:
Точно так же, ничто не мешает использовать таким образом параметры, хоть в окне «Run», хоть в командной строке в команде «start». Однако, на мой взгляд, для командной строки удобнее пользовать макросы doskey.exe. Создаёте, например, такой макрос: Далее можно просто пользовать его из командной строки (не из пакетных файлов) наподобие: Макрос можно сохранить в файл и загружать при необходимости. Описание смотрите в справке: и в: CMD/BAT: Макросы DOSKEY — полезная вещь, которую не многие используют. Точно так же, если Вы постоянно работаете со скриптами Resource Hacker'а, можно облегчить себе жизнь следующим образом. Для этого следует завести для этих скриптов некое незанятое расширение (например, у меня не занято «.rh»). Зарегистрируем такой тип файлов и ассоциируем его с исполняемым файлом «ResHacker.exe»: assoc .rh=ResourceHackerScript ftype ResourceHackerScript="C:\Program Files\Resource Hacker\ResHacker.exe" -script "%1" При этом будет опосредованно запущена такая команда: |
||
Отправлено: 17:47, 29-11-2009 | #9 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Цитата Iska:
Хотя я не понял что значит "" здесь: start "" ResHacker.exe? Может это Вы имели ввиду: start "C:\~\Apps\ResHacker\ResHacker.exe" Ладно это не важно! Хочу пояснить немножко суть всего. Я делаю самодельные инсталяторы программ. При этом взял за правило использовать все фитчи системы. То-есть установленное приложение, любое должно сразу быть готово запускаться из Пуск > Выполнить, из консоли CMD.exe, из значка My Computer итп. особо изощрённых способов не предполагается, но то что заложенно в системе то и используем. Это я к тому что мне много таких батников надо, для всех программ, ResHacker это частный случай. Я подсмотрел в реестре такую запись "%1" %* и не разобравшись стал юзать, но как стало понятно позже, что это не удачный пример... Хотя я задумался, а зачем там в реестре ms так написали? Но похоже, что там был случай с точно определённым вызовом, то-есть точно 1 свитчер плюс %* В моём же случае свитчер может вообще отсутствовать, в этом и проблемма... наверное? Правда не ясно почему неправильно работает при 1 + несколько ключей? Но не важно! Главное я понял такая маска %* работает действительно универсально! Даже не знаю будет ли она обрабатыать пустой ввод, но по любому хорошо уже! App Paths, как говорил уже ранее у меня всегда задействован, но возможно что тут может возникнуть путаница в отношении CMD.exe промпта? Не знаю, но это всё неочевидно. Не ясно какая именно ситуация... Вообще-то батник не противоречит пути в реестре, посему нет проблемы! ? DOSKEY никогда не юзал, весьма интересно, хотя надо почитать, сразу не определиться насколько полезно... Но определённо хорошо то, что это прога из дистрибутива windows, значит всегда есть и везде! Как резюм хочу добавить, что тут ключевым является максимально юзать комманд строку, вместо пакетного управления. Всё что пока можно втиснуть в комманду грубо говоря. offtop: самый интересный с точки зрения исследования комманд строки это Directory Opus, я глянул в хелп и увидел там тучи комманд, но у меня так и не заработало такое "C:\~\Apps\DOpus\dopusrt.exe" /cmd Go "C:\~\system32" OPENINRIGHT (подсказка с его форума) хотя справедливо и такое "C:\~\Apps\DOpus\dopusrt.exe" /cmd Go PATH "C:\~\system32" OPENINRIGHT в справке вообще написано OPENINRIGHT/S одно только радует, это богатство комманд строки в проге! |
|
------- Последний раз редактировалось semiono, 01-12-2009 в 19:31. Отправлено: 18:52, 01-12-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Помогите запустить CMD-файл из CMD-файла с параметрами | Oleg48 | Скриптовые языки администрирования Windows | 2 | 18-11-2009 11:08 | |
CMD/BAT - [решено] Создать сценарий для ResHacker. | E-mpty | Скриптовые языки администрирования Windows | 3 | 10-10-2009 21:37 | |
[решено] AutoIt и ResHacker | ya158 | AutoIt | 22 | 29-09-2009 00:22 | |
CMD/BAT - [решено] FTP + CMD | Art644 | Скриптовые языки администрирования Windows | 6 | 18-05-2009 18:54 | |
Помогите пожалуйста не срабатывает команда из*cmd файла запускаемого из RanOnceEx.cmd | vovchiku | Автоматическая установка Windows 2000/XP/2003 | 6 | 25-09-2007 23:38 |
|