[英]Batch to show me files with *_????*.* in two folders
Sorry, but my English is very poor! 抱歉,但是我的英语很差! I have two folders with several files like below:
我有两个文件夹,其中包含几个文件,如下所示:
D:\Folder1\
START_0101.dat..
START_0105.dat..
START_0109.dat..
..
..
..
START_0250.dat.
D:\Folder2\
rms_20141124_0100.mdb..
rms_20141124_0108.mdb..
rms_20141124_0109.mdb..
..
..
..
rms_20141124_0250.mdb.
I need a batch script to show that files *109.mdb and *250.mdb exists in Folder2. 我需要一个批处理脚本来显示Folder2中存在文件* 109.mdb和* 250.mdb。 If exists, then display a message.
如果存在,则显示一条消息。
WINDOWS 2000 Windows 2000
I can have several files in folder1, with this pattern "*_????.dat". 我的文件夹1中可以有多个文件,其格式为“ * _ ???????。dat”。 D:\\Folder1\\ START_0101.dat.. START_0105.dat.. START_0109.dat.. .. .. .. *_????.dat
D:\\ Folder1 \\ START_0101.dat .. START_0105.dat .. START_0109.dat ..。。。。* * _ ????。dat
I can have several files in folder2, with this pattern "*_????.mdb". 我可以在Folder2中拥有多个文件,其格式为“ * _ ???????。mdb”。 D:\\Folder2\\ rms_20141124_0100.mdb.. rms_20141124_0108.mdb.. rms_20141124_0109.mdb.. .. .. .. *_????.mdb
D:\\ Folder2 \\ rms_20141124_0100.mdb .. rms_20141124_0108.mdb .. rms_20141124_0109.mdb ....... * * _ ????。mdb
I need something like this: 我需要这样的东西:
if exist "d:\\folder1*_????. " set "found=1" if exist "d:\\folder2*_????. " set "found=2" 如果存在“ d:\\ folder1 * _ ??????? ”,则设置“ found = 1”;如果存在“ d:\\ folder1 * _ ??????? ”,则设置“ found = 2”
if "%1%" EQU "%2%" ( echo file %found% exist ) else ( echo file doesn't exist ) 如果“%1%” EQU“%2%”(回声文件%found%存在),否则(回声文件不存在)
Thanks a lot! 非常感谢!
@echo off
setlocal enableextensions disabledelayedexpansion
set "folder1=d:\folder1"
set "folder2=d:\folder2"
for %%a in ("%folder1%\*.dat") do (
for /f "tokens=2 delims=_" %%b in ("%%~na") do (
if exist "%folder2%\*_%%b.mdb" (
echo %%b exists
) else (
echo %%b missing
)
)
)
For each .dat
file in folder 1, retrieve a reference to the file in for
replaceable parameter %%a
, from it, get the file name ( %%~na
), tokenize it using the underscore as delimiter and retrieve the second token. 对于每一个
.dat
文件夹1的文件,检索到文件的引用for
可替换参数%%a
,从它,得到的文件名( %%~na
),使用下划线作为分隔符标记化,并检索所述第二令牌。 Show if exist a .mdb
file in folder 2 with the same token. 显示文件夹2中是否存在具有相同标记的
.mdb
文件。
edited to adapt to multiple subfolders in folder2 编辑以适应folder2中的多个子文件夹
@echo off
setlocal enableextensions disabledelayedexpansion
set "folder1=d:\folder1"
set "folder2=d:\folder2"
for %%a in ("%folder1%\*.dat") do (
for /f "tokens=2 delims=_" %%b in ("%%~na") do (
set "match="
for /r "%folder2%" %%c in ("*_%%b.mdb") do if not defined match (
set "match=1"
echo %%~nxa located as %%c
)
if not defined match (
echo %%b missing
)
)
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.