批处理文件搜索文件并列出目录

时间:2013-11-04 22:56:33

标签: batch-file

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

rem browsefolder

你可以在这里得到编译器:http://www.battoexeconverter.com/无论如何,如果用户找不到文件,我想有一个自动搜索功能。它将不得不chech所有目录,可能需要一段时间。我还需要命令将文件的位置(如果已找到)存储为变量。我不能自动启动它,因为我需要首先杀死其他进程,将它作为变量更好。我不知道这是否可行,所以如果这是一个非常苛刻的请求,我很抱歉。再一次,我只需要搜索功能。其余的我已经完成了。

2 个答案:

答案 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"
相关问题