我有一个文件夹,其中包含以这种方式命名的文件:
abc_123_1234567.txt
如何编写Windows7批处理文件,在文件夹中找到与最后一组数字匹配的文件(即1234567)。
因此,调用批处理文件:mybatchfile.bat 1234567
将返回上述文件。请注意,该数字是唯一的,因此只返回一个文件。
答案 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
。