在不知道完整路径的情况下执行exe

时间:2011-07-04 14:33:33

标签: batch-file find exe

我需要在不知道完整路径的情况下以Acad.exe的名称启动应用程序。这条路径很难决定安装应用程序的人员的安装。

我怎么能做到这一点?

5 个答案:

答案 0 :(得分:3)

应用程序通常将其安装位置存储在注册表中,因此查找它们的首选方法是在注册表中查找适当的位置。这样,您就不会意外地使用相同的文件名启动另一个程序。

假设acad.exe是AutoCAD,this page gives the locations you have to look up

答案 1 :(得分:1)

尝试使用任何具有OLE2层接口的语言:

CreateDispatch("Autocad.Application")

在C ++中:

::CoInitializeEx(NULL);
::CreateDispatch("AutoCAD.Application");

使用批处理脚本:

  • 将以下名称保存在`start_autocad.vbs

    set objShell=CreateObject("Autocad.Application")
    objShell.Visible = TRUE
    
  • 运行cscript start_autocad.vbs

答案 2 :(得分:1)

如果此 acad.exe 安装符合Windows约定,则安装过程会在注册表中创建一个特殊密钥:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

如果使用所需参数定义 acad.exe ,则可以使用以下简单命令从批处理文件启动它:

START acad.exe

无需指定完整路径,Windows将从相应的AppPath条目中获取它。

答案 3 :(得分:0)

假设它在C:驱动器上,你可以这样做:

@echo off
c:
cd \
for /f "delims=" %%a in ('dir /s /b acad.exe') do set exeLcn=%%a
start %exeLcn%

答案 4 :(得分:0)

您可以重现CMD.EXE的行为,而不是发明自己的方法,在%PATH%中查找ACAD.EXE。

以此为例,让您入门......

:inpath
echo %~$PATH:1
echo %~dp$PATH:1
goto :eof

以这种方式调用

call :inpath acad.exe