创建注册表项命令以打开程序其父目录,并以单击的文件作为参数

问题描述 投票:0回答:1

我设法制作了一个批处理文件,该文件创建注册表项以通过双击打开具有特定扩展名的文件。

启动发生在单击的文件所在的目录中。我需要在

%pathtoexe%
所在的目录中启动该程序,并将单击的文件的完整路径作为参数传递。

for %%A in ("%~dp0.") do set "folder=%%~dpA"

set "ftypename=release"
set "extension=.pmp"
set "pathtoexe=%folder%TranslationUpdater.exe"
set "pathtoicon=%~dp0file_type_favicon.ico"

REG ADD HKCU\SOFTWARE\Classes\%extension% /ve /d "%ftypename%" /f
REG ADD HKCU\SOFTWARE\Classes\%ftypename%\DefaultIcon /ve /d "%pathtoicon%" /f
reg add HKCU\SOFTWARE\Classes\%ftypename%\Shell\Open\Command /ve /d ""%pathtoexe%" "%%1"" /f

ftype %ftypename%="%pathtoexe%" "%%1"
assoc %extension%=%ftypename%

所以注册表命令行需要保存这样的东西......

cd %folder%
start %pathtoexe% %1
batch-file registry
1个回答
0
投票

可以修改注册表中的Command键,以使用cmd命令更改目录并启动程序。

for %%A in ("%~dp0.") do set "folder=%%~dpA"

set "ftypename=release"
set "extension=.pmp"
set "pathtoexe=%folder%TranslationUpdater.exe"
set "pathtoicon=%~dp0file_type_favicon.ico"

REG ADD HKCU\SOFTWARE\Classes\%extension% /ve /d "%ftypename%" /f
REG ADD HKCU\SOFTWARE\Classes\%ftypename%\DefaultIcon /ve /d "%pathtoicon%" /f
reg add HKCU\SOFTWARE\Classes\%ftypename%\Shell\Open\Command /ve /d "\"%SystemRoot%\\System32\\cmd.exe\" /c cd /d \"%folder%\" && start \"\" \"%pathtoexe%\" \"%%1\"" /f

ftype %ftypename%="%pathtoexe%" "%%1"
assoc %extension%=%ftypename%
© www.soinside.com 2019 - 2024. All rights reserved.