0

我正在制作一个自动启动程序的批处理文件,如果程序不在原始位置,它会弹出一个窗口,并要求用户自己搜索文件。这是通过批处理到 exe 程序完成的,它甚至包括一些高级命令。我用的是:

rem browsefolder

你可以在这里得到编译器:http ://www.battoexeconverter.com/ 无论如何,如果用户找不到文件,我希望有一个自动搜索功能可用。它必须检查所有目录,并且可能需要一段时间。一旦找到文件,我还需要该命令将文件的位置存储为变量。我不能只是自动启动它,因为我需要先杀死其他进程,而且将它作为变量会更好。我不知道这是否可能,所以如果这是一个离谱的请求,我很抱歉。再一次,我只需要搜索功能。其余的我已经完成了。

4

2 回答 2

3
@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%'
)
于 2013-11-05T05:20:32.297 回答
0

这将搜索当前驱动器file.exe并将变量设置为驱动器中最后一个匹配的位置。

@echo off
for /r \ %%a in (file.exe) do set "location=%%~dpa"
于 2013-11-05T00:29:50.710 回答