如何将要打开的文件扩展名与批处理脚本关联起来?

如何将要打开的文件扩展名与批处理脚本关联起来?

我想摆脱OSPPSVC(Office软件保护平台服务)。

然后,我将打开 Office 程序的链接替换为以下链接launcher.bat

@echo off
title Launching Office...
Set target=%1

sc config osppsvc start= demand
net start osppsvc

:check
if exist "%target%.exe" goto launch
Set/p target="Introduce the program to open:"
goto check

:launch
start %target%.exe %2

sleep 10

sc config osppsvc start= disabled
net stop osppsvc

如果我在控制台中输入以下内容,我就可以打开文件:

"C:\Path\To\Office14\launcher.bat" winword "C:\Path\To\File\doc.docx"

但是,因为我想要资源管理器集成,所以我尝试将.docx要打开的扩展关联起来

"C:\Path\To\Office14\launcher.bat" winword "%1"

但它不起作用:批处理文件运行但没有打开Word(它询问“引入要打开的程序:”)。


编辑:固定代码:

@echo off
title Launching Office...
Set name=%1

sc config osppsvc start= demand
net start osppsvc

:check
Set target="%~dp0%name%.exe"
if exist %target% goto launch
Set/p name="Introduce the program to open:"
goto check

:launch
start "" %target% %2

sleep 10

sc config osppsvc start= disabled
net stop osppsvc

答案1

实际上,您似乎需要指定 %target% 位于哪个文件夹,除非 Office 路径位于您的 %PATH% 中。

相关内容