Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 在不知道完整路径的情况下执行exe_Batch File_Find_Exe - Fatal编程技术网

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

Batch file 在不知道完整路径的情况下执行exe,batch-file,find,exe,Batch File,Find,Exe,我需要在不知道其完整路径的情况下以Acad.exe的名称启动应用程序。此路径通常由安装应用程序的人员决定 如何实现此目的?假设它位于C:驱动器上,您可以执行以下操作: @echo off c: cd \ for /f "delims=" %%a in ('dir /s /b acad.exe') do set exeLcn=%%a start %exeLcn% 假设它位于C:驱动器上,您可以执行以下操作: @echo off c: cd \ for /f "delims=" %%a in ('

我需要在不知道其完整路径的情况下以Acad.exe的名称启动应用程序。此路径通常由安装应用程序的人员决定


如何实现此目的?

假设它位于C:驱动器上,您可以执行以下操作:

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

假设它位于C:驱动器上,您可以执行以下操作:

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

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


假设
acad.exe
是AutoCAD,.

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


假设
acad.exe
是AutoCAD,.

在任何具有OLE2层接口的语言中尝试此操作:

CreateDispatch("Autocad.Application")
在C++中:

::CoInitializeEx(NULL);
::CreateDispatch("AutoCAD.Application");
使用批处理脚本:

  • 以“start\u autocad.vbs”的名称保存以下内容

    set objShell=CreateObject("Autocad.Application")
    objShell.Visible = TRUE
    
  • 运行
    cscript start\u autocad.vbs

在任何具有OLE2层接口的语言中尝试此操作:

CreateDispatch("Autocad.Application")
在C++中:

::CoInitializeEx(NULL);
::CreateDispatch("AutoCAD.Application");
使用批处理脚本:

  • 以“start\u autocad.vbs”的名称保存以下内容

    set objShell=CreateObject("Autocad.Application")
    objShell.Visible = TRUE
    
  • 运行
    cscript start\u autocad.vbs

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

试试这个例子,让你开始

:inpath
echo %~$PATH:1
echo %~dp$PATH:1
goto :eof
这样调用它

call :inpath acad.exe

与其发明自己的方法,不如复制CMD.EXE的行为,在%PATH%中查找ACAD.EXE

试试这个例子,让你开始

:inpath
echo %~$PATH:1
echo %~dp$PATH:1
goto :eof
这样调用它

call :inpath acad.exe
如果此acad.exe安装遵循Windows约定,则安装过程会在注册表中创建一个特殊项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
如果acad.exe是使用所需参数定义的,则可以使用以下简单命令从批处理文件启动:

START acad.exe
无需指定完整路径,Windows将从相应的AppPath条目获取该路径。

如果此acad.exe安装遵循Windows约定,安装过程将在注册表中创建一个特殊项:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
如果acad.exe是使用所需参数定义的,则可以使用以下简单命令从批处理文件启动:

START acad.exe

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

尝试打开命令提示符,然后执行“c:”,然后执行“cd\”,然后执行“dir/s/b acad.exe”。窗口中应显示路径。你知道路吗?几张便条。1.只需一个命令即可更改驱动器和目录:
CD/dc:\
。2.您根本不需要
CD
命令,因为您可以简单地将起始路径合并到
DIR
命令中:
DIR/S/B C:\acad.exe
。3.假设正确选择了用于安装产品的文件夹,您可以使用
%PROGRAMFILES%
而不是
C:\
DIR/S/B”%PROGRAMFILES%\acad.exe“
。尝试打开命令提示符,然后执行“C:”,然后是“cd\”,然后是“DIR/S/B acad.exe”。窗口中应显示路径。你知道路吗?几张便条。1.只需一个命令即可更改驱动器和目录:
CD/dc:\
。2.您根本不需要
CD
命令,因为您可以简单地将起始路径合并到
DIR
命令中:
DIR/S/B C:\acad.exe
。3.假设正确选择了用于安装产品的文件夹,您可以使用
%PROGRAMFILES%
而不是
C:\
DIR/S/B“%PROGRAMFILES%\acad.exe”缩小搜索范围
。请安装应用程序的人将其添加到路径请安装应用程序的人将其添加到路径最佳方法。最佳方法。