Batch file 用于复制文件名中包含4位数字的文件的Windows批处理脚本

Batch file 用于复制文件名中包含4位数字的文件的Windows批处理脚本,batch-file,scripting,Batch File,Scripting,我正在尝试编写一个Windows批处理脚本(.bat),它应该只将文件(以“cobr.cm1*”开头)和文件名上的4位数字从一个文件夹复制到另一个文件夹 源文件夹: cobr.cm1.002.03.2020-07-23.SDK.001001.10.xml cobr.cm1.002.03.2020-07-23.SDK.001001.1743.xml cobr.cm1.002.03.2020-07-23.SDK.001001.1842.xml cobr.cm1.002.03.2020-07-23.S

我正在尝试编写一个Windows批处理脚本(.bat),它应该只将文件(以“cobr.cm1*”开头)和文件名上的4位数字从一个文件夹复制到另一个文件夹

源文件夹:

cobr.cm1.002.03.2020-07-23.SDK.001001.10.xml
cobr.cm1.002.03.2020-07-23.SDK.001001.1743.xml
cobr.cm1.002.03.2020-07-23.SDK.001001.1842.xml
cobr.cm1.002.03.2020-07-23.SDK.001001.12.xml
目标文件夹(我试图实现的目标):


您必须使用
FOR/F
命令来解析输送到
FINDSTR
命令的
DIR
命令的输出。
FINDSTR
命令具有有限的正则表达式功能,但在您的情况下可以工作。这应该让您开始:
FOR/F“delims=“%%G in('dir/b cobr.cm1*^ findstr/r/C:“.\[0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.xml”)复制“%%G”“C:\some folder path\”
我同意,尽管我可能会让它更健壮一点,/F Delims^=%G('dir/b/a:-D“cobr.cm1.??.xml”^ u124“%\ uu AppDir另一个“,(显然用您的实际目的地替换另一个“)我甚至可以考虑,如果在一些点之间有已知的其他字符数,则用一个适当的最小数量的<代码> > <代码> >和<代码> .<代码> >和/或对该匹配进行进一步细化来加强< <代码> *>代码>。您必须使用<代码> /f>代码>命令来解析<代码> dir < /代码>的输出。通过管道传输到
FINDSTR
命令的命令。
FINDSTR
命令具有有限的正则表达式功能,但可以在您的情况下工作。这应该可以让您开始:
FOR/F“delims=“%%G in('dir/b cobr.cm1*^ FINDSTR/r/C:.\[0-9][0-9][0-9][0-9]\.xml'))复制“%%G”C:\某个文件夹路径\“
我同意,尽管我可能会让它更健壮一些,
@For/F Delims^=%G In('Dir/B/a:-D”cobr.cm1...??.xml“^ |“%\uuu AppDir_uuu%findstr.exe”/R/I/C:”[0123456789][0123456789][0123456789][0123456789][0123456789].xml$”)Do@Copy“%G”“另一个”
,(显然用您的实际目的地替换了另一个
)我甚至可以考虑,如果在一些点之间有已知的其他字符数,则用一个适当的最小数量的<代码> > <代码> >和<代码> .<代码>,和/或进一步的匹配来加强<代码> >代码>。
cobr.cm1.002.03.2020-07-23.SDK.001001.1743.xml
cobr.cm1.002.03.2020-07-23.SDK.001001.1842.xml