|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Запуск Bat файла через %APPDATA% |
|
|
CMD/BAT - [решено] Запуск Bat файла через %APPDATA%
|
Новый участник Сообщения: 4 |
Если вызывать из коммандной строки
D:\Users\User\AppData\Roaming\callback\callback.bat +74955555555 %APPDATA%\callback\callback.bat +74955555555 все работает Если вазывать из браузера по tel:+74955555555 Запись в реестре Работает [HKEY_CURRENT_USER\Software\Classes\tel\shell\open\command] @="D:\\Users\\User\\AppData\\Roaming\\callback\\callback.bat %1" Запись в реестре Не работает [HKEY_CURRENT_USER\Software\Classes\tel\shell\open\command] @="%appdata%\\callback\\callback.bat %1" Вопрос к знатокам, как решить данную проблему. Как запустить именно через %appdata% |
|
Отправлено: 15:22, 04-02-2021 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось alpap, 04-02-2021 в 21:54. Отправлено: 21:00, 04-02-2021 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Идея зачет, но неработает.
Не отрабатываються такие переменные как %APPDATA% %USERPROFILE%, только прямой путь до файла. Есть еще идеии... |
Отправлено: 11:09, 05-02-2021 | #3 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Сам спросил сам ответил
По умолчанию запись в реестре REG_SZ, а надо REG_EXPAND_SZ [HKEY_CURRENT_USER\Software\Classes\tel\shell\open\command] @=hex(2):25,00,41,00,50,00,50,00,44,00,41,00,54,00,41,00,25,00,5c,00,63,00,61,\ 00,6c,00,6c,00,62,00,61,00,63,00,6b,00,5c,00,63,00,61,00,6c,00,6c,00,62,00,\ 61,00,63,00,6b,00,2e,00,62,00,61,00,74,00,20,00,25,00,31,00,00,00 Человеко понятный вид IMG |
Отправлено: 11:30, 05-02-2021 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Prochor:
|
||
Отправлено: 13:51, 05-02-2021 | #5 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать а почему через реестр получается так:
hex(2):25,00,61,00,70,00,70,00,64,00,61,00,74,00,61,00,25,00,5c,00,63,00,61,00,6c,00,6c,00,62,00,61,00,63,00,6b,00,5c,00,63,00,61,00,6c,00,6c,00,62,00,61,00,63,00,6b,00,2e,00,62,00,61,00,74,00,20,00,25,00,31,00,00,00 $text="%appdata%\callback\callback.bat %1" foreach ($i in $text.ToCharArray()) { $hex+=[System.String]::Format("{0:X2}"+",00,", [System.Convert]::ToUInt32($i)) } "hex(2):"+$hex > f.txt hex(2):25,00,61,00,70,00,70,00,64,00,61,00,74,00,61,00,25,00,5C,00,63,00,61,00,6C,00,6C,00,62,00,61,00,63,00,6B,00,5C,00,63,00,61,00,6C,00,6C,00,62,00,61,00,63,00,6B,00,2E,00,62,00,61,00,74,00,20,00,25,00,31,00, |
Последний раз редактировалось alpap, 05-02-2021 в 15:37. Отправлено: 15:24, 05-02-2021 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать alpap, насколько я понимаю, требуется C-шный терминатор строк \0, он же — 0x00, символ с кодом 0. Отсюда и появляются два «лишних» нуля (,00,00) в конце файла реестра.
|
Отправлено: 15:35, 05-02-2021 | #7 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать но ни на что это не влияет, если так именно делать, а не через реестр?
проверил на нескольких разных строках, вывод такой же: через реестр есть эти две группы нулей, через pwsh нет так что можно дописывать, тогда вывод идентичный получается. |
Последний раз редактировалось alpap, 05-02-2021 в 15:47. Отправлено: 15:39, 05-02-2021 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать alpap, терминатор обязателен — Registry Value Types - Win32 apps | Microsoft Docs:
Цитата:
|
|
Отправлено: 16:25, 05-02-2021 | #9 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Iska:
внес изменения в реестр запуском reg, создался ключ с правильным значением параметра значения. конкретно в работе не проверял, только на визуальное совпадение информации. (но дописать никакого труда не составляет, сам бы рисковать не стал) внимательнее почитал я-то проверял на REG_EXPAND_SZ, ограничения конкретно на REG_MULTI_SZ. проверил для REG_MULTI_SZ, разница есть, если не дописать (но уже 4-е 0), то превращается в REG_EXPAND_SZ нужно так изменить вывод: $text="%appdata%\callback\callback.bat %1" foreach ($i in $text.ToCharArray()) { $hex+=[System.String]::Format("{0:X2}"+",00,", [System.Convert]::ToUInt32($i)) } "hex(7):"+$hex+"00,00,00,00" > f.txt |
|
Последний раз редактировалось alpap, 05-02-2021 в 23:37. Отправлено: 23:06, 05-02-2021 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Перемещение файла в AppData пользователя с помощью bat-ника | Stalker_AleX333 | Скриптовые языки администрирования Windows | 3 | 10-02-2017 21:47 | |
CMD/BAT - Запуск произвольного bat файла | XXXp | Скриптовые языки администрирования Windows | 2 | 23-04-2015 18:04 | |
CMD/BAT - Запуск BAT файла с правами локального пользователя из сетевого BAT файла | Yurii_L | Скриптовые языки администрирования Windows | 9 | 05-09-2012 14:27 | |
CMD/BAT - [решено] Запуск bat-файла от имени админа.Как сделать каталог этого bat-файла текущим?? | axmed0207 | Скриптовые языки администрирования Windows | 1 | 19-01-2012 06:14 | |
WMI - [решено] Запуск .BAT файла с параметрами через WMI | Glamorama | Скриптовые языки администрирования Windows | 3 | 07-10-2009 11:12 |
|