我正在创建一个自动启动程序的批处理文件,如果程序不在原始位置,它会弹出一个窗口,并要求用户自己搜索该文件。这是通过批处理到exe程序完成的,它甚至包括一些高级命令。我用的是:
rem browsefolder
你可以在这里得到编译器:http://www.battoexeconverter.com/无论如何,如果用户找不到文件,我想有一个自动搜索功能。它将不得不chech所有目录,可能需要一段时间。我还需要命令将文件的位置(如果已找到)存储为变量。我不能自动启动它,因为我需要首先杀死其他进程,将它作为变量更好。我不知道这是否可行,所以如果这是一个非常苛刻的请求,我很抱歉。再一次,我只需要搜索功能。其余的我已经完成了。
答案 0 :(得分:1)
@echo off
:: the file to look for. (In this case 'myFile.txt')
set filename=myFile.txt
:: the drive or path to search. (In this case searching current drive)
set searchPath=\
:: If the file is found. This variable will be set
set foundFilePath=
:: echos all found paths and returns the last occurrance of the file path
FOR /R "%searchPath%" %%a in (%filename%) DO (
IF EXIST "%%~fa" (
echo "%%~fa"
SET foundFilePath=%%~fa
)
)
IF EXIST "%foundFilePath%" (
echo The foundFilePath var is set to '%foundFilePath%'
) else (
echo Could not find file '%filename%' under '%searchPath%'
)
答案 1 :(得分:0)
这将搜索当前驱动器file.exe
并将变量设置为驱动器中最后一个匹配的位置。
@echo off
for /r \ %%a in (file.exe) do set "location=%%~dpa"