URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 58364
[ Назад ]

Исходное сообщение
"Как забить на esc в шелле?"

Отправлено WW , 19-Июл-05 13:13 
Пытаюсь заюзать UnxUtils-овский (unxutils.sourceforge.net) шелл под виндой. Нужно получить значение ключа реестра. Трабла в том, что значенеи ключа - это путь а виндовые пути с долбанутыми слешами, автоматически ескапятся шеллом. В результате получается не путь в полная фигня, например из
D:\perl\bin получается D:\perlin при чем получается эта фигня до того, как я могу добраться до этого значения (т.е. так обрабатывается вывод команды reg). Есть ли какая нибудь директива, которая отключает обработку эксейпов на время выполнения команды?

Содержание

Сообщения в этом обсуждении
"Как забить на esc в шелле?"
Отправлено newser , 19-Июл-05 14:44 
>Пытаюсь заюзать UnxUtils-овский (unxutils.sourceforge.net) шелл под виндой. Нужно получить значение ключа реестра.
>Трабла в том, что значенеи ключа - это путь а виндовые
>пути с долбанутыми слешами, автоматически ескапятся шеллом. В результате получается не
>путь в полная фигня, например из
>D:\perl\bin получается D:\perlin при чем получается эта фигня до того, как я
>могу добраться до этого значения (т.е. так обрабатывается вывод команды reg).
>Есть ли какая нибудь директива, которая отключает обработку эксейпов на время
>выполнения команды?

'\\' => '\' - это азы из любого шелла.


"Как забить на esc в шелле?"
Отправлено WW , 20-Июл-05 06:22 
>'\\' => '\' - это азы из любого шелла.

Хех, объясняю же - до того, как я получаю результат работы. Т.е. если даже я делаю так

reg someargs > filename

то в filename уже заэскейпенные символы


! REG.EXE VERSION 2.0

HKEY_CURRENT_USER\Environment
    PATH    REG_SZ    D:\WINXP\system32;D:\WINXP;D:\WINXP\System32\Wbem;D:\server\mysql\bin\bin;D:ygwin\usr\local\bin;D:ygwin\bin;D:ygwin\bin;D:ygwin\usr\X11R6\bin;d:\WINXP\system32;d:\WINXP;d:\WINXP\System32\Wbem;d:\server\mysql\bin;d:\WINXP;d:\WINXP\system32;d:\WINXP\System32\Wbem;d:\msvc\Common\Tools\WinNT;d:\msvc\Common\MSDev98\Bin;d:\msvc\Common\Tools;d:\msvc\VC98\bin;d:\server\UnxUtils\usr\local\wbin;d:\server\perl\bin;d:\server\UnxUtils\bin;d:\Program Files\CVSNT\

был D:\cygwin а стал D:ygwin

А вот что получается если я пытаюсь получить в переменную M=`reg someargs`

! REG.EXE VERSION 2.0

HKEY_CURRENT_USER\Environment
    PATH    REG_SZ    D:\WINXP\system32;D:\WINXP;D:\WINXP\System32\Wbem;D:\server\mysqlinin;D:ygwin\usr\localin;D:ygwinin;D:ygwinin;D:ygwin\usr\X11R6in;d:\WINXP\system32;d:\WINXP;d:\WINXP\System32\Wbem;d:\server\mysqlin;d:\WINXP;d:\WINXP\system32;d:\WINXP\System32\Wbem;d:\msvc\Common\Tools\WinNT;d:\msvc\Common\MSDev98\Bin;d:\msvc\Common\Tools;d:\msvc\VC98in;d:\server\UnxUtils\usr\local\wbin;d:\server\perlin;d:\server\UnxUtilsin;d:\Program Files\CVSNT\

здесь кроме цигвина еще и все бины заескейпены