Windows 批处理以在两个文件夹中向我显示带有*???**的文件

Windows 批处理以在两个文件夹中向我显示带有*???**的文件,windows,batch-file,Windows,Batch File,对不起,我的英语很差! 我有两个文件夹,其中包含以下几个文件: 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. 我需要一个批处理脚本来显

对不起,我的英语很差! 我有两个文件夹,其中包含以下几个文件:

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.
我需要一个批处理脚本来显示Folder2中存在文件*109.mdb和*250.mdb。 如果存在,则显示一条消息

视窗2000


我可以在folder1中有多个文件,使用此模式“*\u???.dat”。 D:\Folder1\ 启动\u 0101.dat。。 起始日期。。 开始日期。。 .. .. .. *_dat

我可以在folder2中有几个文件,使用这种模式“*挈.mdb”。 D:\Folder2\ rms_20141124_0100.mdb。。 rms_20141124_0108.mdb。。 rms_20141124_0109.mdb。。 .. .. .. *_mdb

我需要这样的东西:

如果存在“d:\folder1*???。”设置“found=1” 如果存在“d:\folder2*???。”设置“found=2”

如果“%1%”等于“%2%”( 回显文件%1已找到%2,但该文件不存在 )否则( 回显文件不存在 )

非常感谢

@echo关闭
setlocal enableextensions disabledelayedexpansion
设置“folder1=d:\folder1”
设置“folder2=d:\folder2”
对于(“%folder1%\*.dat”)中的%%a,请执行以下操作(
对于/f“tokens=2 delims=“%%%b in(“%%~na”)do(
如果存在“%folder2%\*\%%b.mdb”(
回声%%b存在
)否则(
回声%%b缺失
)
)
)
对于文件夹1中的每个
.dat
文件,检索对
中可替换参数
%%a
的文件的引用,从中获取文件名(
%%na
),使用下划线作为分隔符标记该文件,并检索第二个标记。显示文件夹2中是否存在具有相同令牌的
.mdb
文件

已编辑以适应folder2中的多个子文件夹

@echo关闭
setlocal enableextensions disabledelayedexpansion
设置“folder1=d:\folder1”
设置“folder2=d:\folder2”
对于(“%folder1%\*.dat”)中的%%a,请执行以下操作(
对于/f“tokens=2 delims=“%%%b in(“%%~na”)do(
设置“匹配=”
对于“*.%%b.mdb”中的/r“%folder2%”%%c,如果未定义匹配项,请执行此操作(
设置“匹配=1”
echo%%~nxa定位为%%c
)
如果没有定义匹配(
回声%%b缺失
)
)
)

到目前为止,你写了哪些不适合你的东西?李朋友,我必须显示两个文件夹中存在的文件。如果folder1中存在文件START_0109.dat,folder2中存在rms_20141124_0109.mdb,则文件109存在。但我可以在两个文件夹中都有几个文件。我需要一个消息,只有当有一个文件“???”在这两个。如果两个文件夹中的数字“???”相等,则该文件存在,否则该文件不存在。这些文件可以有任何数字???,但如果两者都存在,则显示一条消息。对不起我的英语!非常感谢你!请编辑您的问题以准确解释您需要的内容,包括此新信息。显示您已经拥有或想要使用的任何代码,并告诉它为什么不起作用,很遗憾,我还没有代码。我需要这样的东西:两个文件夹中使用下划线作为分隔符的tokens中的文件名:第一个文件夹中的for/f“tokens=2 delims=25;是:D:\Folder1\25;。第二个文件夹中的dat是:D:\Folder2\*25;。mdb如果两个文件夹中指示的模式“25;.*”匹配,则该文件存在。谢谢!亲爱的Sjoy,我可以在folder1中有几个文件,带有这个模式“???.dat”。D:\Folder1\START\u 0101.dat。。起始日期。。开始日期:….*????。dat我可以在folder2中有多个文件,使用这种模式“?.mdb”。D:\Folder2\rms_20141124_0100.mdb。。rms_20141124_0108.mdb。。rms_20141124_0109.mdb????。mdb我需要这样的东西:如果存在“d:\folder1\ \ \ \ \ \ \ \ \ \ \”。如果存在“d:\folder2\ \ \ \ \ \ \”。如果“%1%”等于“%2%”(回显文件%found%exist),则设置“found=1”。否则(回显文件不存在)非常感谢!朋友“mcnd”,我必须显示两个文件夹中存在的文件。如果folder1中存在文件START_0109.dat,folder2中存在rms_20141124_0109.mdb,则文件109存在。但我可以在两个文件夹中都有几个文件。我需要一个消息,只有当有一个文件“???”在这两个。如果两个文件夹中的数字“???”相等,则该文件存在,否则该文件不存在。非常感谢你!我要感谢麦克·恩德先生!我真的很感谢你的快速回复。这个代码工作得很好!非常感谢你,麦肯锡先生!亲爱的MC ND,我再次需要你的帮助。在d:\folder2\n中,我有许多目录,从“d:\folder2\rja”、“d:\folder2\rjb”到“d:\folder2\rjz”。我必须找出文件“*\%%b.dat”位于哪个目录。示例:对于(%folder3%)中的/r INICIO\%b.dat,是否回显文件INICIO\%b.dat在%folder3%\???文件INICIO_0104.dat位于d:\folder2\rjdear MC ND中,我运行您的代码,但我得到的信息是:INICIO_0111.dat位于C:\folder2\rms_20141124_0111.mdb 0205中缺少文件*\%%b.dat也位于%folder2%中的哪个子目录,并显示此子目录。比如:文件INICIO_0104.dat在d:\folder2\rjj中,或者文件INICIO_0104.dat在rjj中,非常感谢@AiltonCarvalho,如果显示的文本
位于C:\folder2\rms_20141124_0111.mdb
,则该文件不在任何子文件夹中,而是在
folder2
文件夹中。如果不需要找到的文件名,请将
echo
行更改为位于%%~dpc
中的
echo%%~nxa,即找到的文件的驱动器和路径