Win 7 64
не могу вписать значение с параметрами.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Unknown\shell\openas\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\
6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,25,00,53,\
00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,00,5c,00,73,00,\
79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,65,00,6c,00,6c,\
00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,4f,00,70,00,65,00,6e,00,41,00,\
73,00,5f,00,52,00,75,00,6e,00,44,00,4c,00,4c,00,20,00,25,00,31,00,00,00
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d "%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1" /fПолучаю значения вместо переменных.
Если поставить ^ перед % , то и получаю всё что в кавычках ^%
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d "^%SystemRoot^%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1" /fДостаточно одной птички чтоб это не читалось переменной, но оно также пишется и в реестр.
Как записать ?
%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1
---
В общем получилось так
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d ^%SystemRoot^%\system32\rundll32.exe" "^%SystemRoot^%\system32\shell32.dll,OpenAs_RunDLL" "%1 /f
убрал значение из кавычек, а в кавычки поставил пробел
Логика как обычно гдето заблудилась.
Мой последний вариант из cmd
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d ^%SystemRoot^%\system32\rundll32.exe" "^%SystemRoot^%\system32\shell32.dll,OpenAs_RunDLL" "%1 /fполучаю что надо, но если запускаю из батника, получаю полное отсутствие переменных
\system32\rundll32.exe \system32\shell32.dll,OpenAs_RunDLLБеру ваш код
reg add HKCR\Unknown\shell\openas\command /ve /t REG_EXPAND_SZ /d "%%SystemRoot%%\system32\rundll32.exe %%SystemRoot%%\system32\shell32.dll,OpenAs_RunDLL %%1" /fзапускаю в командной строке и просто получаю лишние проценты
%C:\Windows%\system32\rundll32.exe %C:\Windows%\system32\shell32.dll,OpenAs_RunDLL %%1запускаю из батника и получаю что надо
%SystemRoot%\system32\rundll32.exe %SystemRoot%\system32\shell32.dll,OpenAs_RunDLL %1То есть батник из комадной строки запускать нельзя, а только из проводника.
Какие есть решения определить откуда запущен батник ?
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.