Чтобы связать расширение файла с указанной программой c - PullRequest
1 голос
/ 30 марта 2020

Я пытаюсь связать указанные c расширения файлов с указанными c программами. Например, когда я нажимаю Enter для .txt файла, он должен быть открыт в Sublime Text. Или может быть в Vim. Или может быть в Chrome.

Мне нужно добиться этого с помощью командной строки. На первый взгляд, это может быть достигнуто следующим образом:

FTYPE txtfile=C:\Program Files\Google\Chrome\Application\chrome.exe "%1"
ASSOC .txt=txtfile

Но на самом деле это ничего не делает для меня: .txt файлы открываются в Sublime Text, а не в браузере.

Что Я делаю не так?

Ответы [ 2 ]

1 голос
/ 01 апреля 2020


Попробуйте:

@echo off && setlocal EnableDelayedExpansion

title <nul && title ...\%~nx0 && cd /d "%~dp0" && mode 50,6 && echo/
for %%i in (ProgramFiles,ProgramFiles(x86^),ProgramW6432)do if /i defined %%~i (
    for /f tokens^=^* %%z in ('%__APPDIR__%where.exe /r "!%%~i!" "chrome.exe" 2^>nul
    ')do set "_path_chrome=%%~z" && goto :_reg_add_: 
     )

:_reg_add_:
>nul (
"%__APPDIR__%reg.exe" add "HKCU\Software\Classes\.txt" /ve /d "txtfile" /f
"%__APPDIR__%reg.exe" add "HKCU\Software\Classes\txtfile" /ve /d "Text Document" /f
"%__APPDIR__%reg.exe" add "HKCU\Software\Classes\txtfile\shell\open\command" /ve /d "\"!_path_chrome:\=\\!\" \"file:///%%L\"" /f
) 2>nul && endlocal || (endlocal && echo/Something is very wrong here^!!) & %__APPDIR__%timeout.exe -1

Используйте for l oop и получите полный путь к Chrome.exe , сохранить его в переменной и заменить \ на \\ для добавления значения пути в регистр ...

Добавить записи в Windows зарегистрируйтесь с этим макетом:

1) Используйте %%L вместо %L

2) Используйте \"file:///%%L\" вместо \"%L\"

3) Используйте "\"!_path_chrome:\=\\!\" вместо \"!_path_chrome\"

Использование: \"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe\"

Не: \"C:\Program Files\Google\Chrome\Application\chrome.exe\"

1 голос
/ 30 марта 2020

Я ожидал бы, что следующее будет работать как задумано, , несмотря на мое нежелание посоветовать ему .

@"%__AppDir__%reg.exe" Add "HKCU\Software\Classes\.txt" /VE /D "txtfile" /F > NUL
@"%__AppDir__%reg.exe" Add "HKCU\Software\Classes\txtfile" /VE /D "Text Document" /F > NUL
@"%__AppDir__%reg.exe" Add "HKCU\Software\Classes\txtfile\shell\open\command" /VE /D "\"%ProgramFiles%\Google\Chrome\Application\chrome.exe\" \"%%L\"" /F > NUL

"%__AppDir__%reg.exe" Add "HKCU\Software\Classes\.txt" /VE /D "txtfile" /F > NUL
"%__AppDir__%reg.exe" Add "HKCU\Software\Classes\txtfile" /VE /D "Text Document" /F > NUL
"%__AppDir__%reg.exe" Add "HKCU\Software\Classes\txtfile\shell\open\command" /VE /D "\"%ProgramFiles%\Google\Chrome\Application\chrome.exe\" \"%L\"" /F > NUL
...