0


Нашел тут bat-файл чтоб нормально запускать word (хочу и Excel) по ссылке из локального html:
Как заставить Internet Explorer открывать файлы *.doc Вордомно там для получения значения из переменной используется конструкция
!переменная! а не %переменная%. Я сразу не решаюсь запустить найденный файл и чуть переделал его на тестовый:
@echo off
setlocal EnableDelayedExpansion
set DOC=NONE
call :q1 2>&1
if "%DOC%" EQU "NONE" goto err1
echo DOC=%DOC%
@echo Word found.
pause
endlocal
goto :EOF
:q1
for /f "Tokens=*" %%a in ('reg query HKCR\.DOC /VE^|find "REG_SZ"') do (
set line=%%a
echo line=%%a
echo !line!
set line=!line:*REG_SZ=REG_SZ!
echo line new=!line!
for /f "Tokens=2" %%b in ('@echo !line!') do (
set DOC=%%b
echo DOC=!DOC!
echo DOC=%DOC%
)
)
goto :EOF
:err1
@echo Word NOT found.
pause
endlocal
goto :EOF
Результат его работы:
line=(по умолчанию) REG_SZ Word.Document.8
(по умолчанию) REG_SZ Word.Document.8
line new=REG_SZ Word.Document.8
DOC=Word.Document.8
DOC=NONE
DOC=Word.Document.8
Word found.
Для продолжения нажмите любую клавишу . . .
Странная конструкция
set line=!line:*REG_SZ=REG_SZ!
после нее line из
(по умолчанию) REG_SZ Word.Document.8
стала
REG_SZ Word.Document.8
Может кто-нибудь знает объяснение этих тайн?

Че-то в книжках и нете не нахожу...