批处理自定义变量路径的读取

来源:百度知道 编辑:UC知道 时间:2024/05/17 08:17:58
一个可执行程序abc.exe的目录是K:\001\002\003
目前只知,可执行程序abc.exe在硬盘中,文件名唯一
怎么,用批处理找到这个路径,
并以K:\001\002\003为变量值
END 为变量名

例:
set END=K:\001\002\003
但,目前,这个路径abc.exe的路径
是未知的

别给我说,VBS,VS什么的,我只要批处理的!

我来写一个更准确更专业的吧!

::假如硬盘中存在多个abc.exe
@echo off
SetLocal EnableDelayedExpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set temp=!var:~-3!
set drive=!temp: =!
for /f "tokens=*" %%a in ('dir /s/a-d/b !drive!\abc.exe 2^>nul') do (
set/a a=a+1
set END!a!=%%~dpa
echo.
echo END!a! = %%~dpa
))

::假如硬盘唯一一个abc.exe
@echo off
SetLocal EnableDelayedExpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set temp=!var:~-3!
set drive=!temp: =!
for /f "tokens=*" %%a in ('dir /s/a-d/b !drive!\abc.exe 2^>nul') do (
set END=%%~dpa
echo.
echo END = %%~dpa
))

不知道你这个所谓的程序是什么,如果是一般的安装软件的话,那这些软件一般会在注册表中留下安装路径,你用批处理的
reg query 命令来读取这个软件专用的注册表项的值就可以了,这样的速度是最快的。
如果你真的要全硬盘搜索的话