批处理文件,用于查找名称以唯一编号结尾的文件

时间:2014-12-04 12:14:06

标签: windows batch-file

我有一个文件夹,其中包含以这种方式命名的文件:

abc_123_1234567.txt 

如何编写Windows7批处理文件,在文件夹中找到与最后一组数字匹配的文件(即1234567)。

因此,调用批处理文件:mybatchfile.bat 1234567将返回上述文件。请注意,该数字是唯一的,因此只返回一个文件。

2 个答案:

答案 0 :(得分:0)

mybatchfile.bat内容:

dir /b *%1*

dir /b *_%1.txt

答案 1 :(得分:0)

主要例程

@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"
PUSHD "%sourcedir%"
CALL c:\106x\q27293854a.bat 1234563
popd
ECHO %ERRORLEVEL% filefound=%filefound%
GOTO :EOF

1234563是您的目标名称 注意:您需要更改sourcedir的设置以适合您的具体情况。那个特殊的设置适合​​我的系统 c:\106x\q27293854a.bat被称为batchname - 名称不重要(适合我的系统)但如果文件安装在q27293854a的目录中,则可以只是path

调用批次c:\106x\q27293854a.bat

@ECHO OFF
SET "filefound="
FOR %%a IN (*_%1.*) DO IF DEFINED filefound (SET "filefound=Error - multiple files found"&EXIT /b 8) else (set "filefound=%%~fa")
IF NOT DEFINED filefound EXIT /b 4
EXIT /b 0

此例程会将filefound设置为找到的完整文件名,如果找不到,则设置为空;如果找到多个匹配项,则设置错误字符串。

ERRORLEVEL也设置为0表示罚款 - 找到1,4表示missing,8表示multiple match found