Batch file 从批处理脚本中包括/排除文件

Batch file 从批处理脚本中包括/排除文件,batch-file,Batch File,在以下用于从目录复制最近创建的文件的批处理脚本中,我希望包括和排除特定的文件名,但不确定如何执行 @echo off set source="C:\FolderA\FolderB" set target="C:\FolderC\FolderD" FOR /F "delims=" %%I IN ('DIR %source%\*.* /A:-D /O:-D /B') DO COPY %source%\"%%I" %

在以下用于从目录复制最近创建的文件的批处理脚本中,我希望包括和排除特定的文件名,但不确定如何执行

@echo off

set source="C:\FolderA\FolderB"

set target="C:\FolderC\FolderD"

FOR /F "delims=" %%I IN ('DIR %source%\*.* /A:-D /O:-D /B') DO COPY %source%\"%%I" %target% & echo %%I & GOTO :END1
:END1

...

set source="C:\FolderE\FolderF" <--- From this directory I would also want to copy, in addition to the most recent file created, the most recent file created that has the word "error" in the file name.

set target="C:\FolderC\FolderD"

FOR /F "delims=" %%I IN ('DIR %source%\*.* /A:-D /O:-D /B') DO COPY %source%\"%%I" %target% & echo %%I & GOTO :END2
:END2

…

set source="C:\FolderG\FolderH" ***<---From this folder i copy the most recent created file, but would like to exclude the files that contains the word "Graphical" in the file name.***

set target="C:\FolderC\FolderD"

FOR /F "delims=" %%I IN ('DIR %source%\*.* /A:-D /O:-D /B') DO COPY %source%\"%%I" %target% & echo %%I & GOTO :END3
:END3

@echo关闭
set source=“C:\FolderA\FolderB”
set target=“C:\FolderC\FolderD”
对于/F“delims=“%%I IN('DIR%source%\*.*.*/A:-D/O:-D/B'),请复制%source%\“%%I”%target%&echo%%I&GOTO:END1
:END1
...

set source=“C:\FolderE\FolderF”下面是一个脚本,可以使用引用的参数调用该脚本:

  • Arg 1:Dir开关和搜索模式
  • Arg 2:Findstr要匹配的字符串
  • Arg 3:执行以下命令的条件运算符
    |
    &&
  • Arg 4:Findstr输出时执行的初始命令语法
  • [可选]:Arg 5:要在
    Dir | Findstr
@Echo关闭
设置“参数3=”
设置“Usage=Echo/%~n0^^[字符串/命令]&Echo/Args 4或5可以引用%%G及其修饰符来访问输出。&退出/B 0”
如果“%~4”==”(%Usage%)
如果“%~3”==”&&“(设置参数3=”),否则如果“%~3”==”| |“(设置参数3=”)
如果未定义参数3(操作员的Echo/Invald参数^&%Usage%)
如果不是“%$5”==”For/F“Delims=“%%G in('Dir%~1^^^^^^(Echo/Invalid Dir Options^&Exit/b0^)”则执行Echo/“%%G”| Findstr/LIC:“%%~2”>Nul%~3(%%~4%%~G%~52>Nul^;Echo/命令使用错误:“%$4”%G”%5”)
如果“%$5”==”For/F“Delims=“%%G in('Dir%~1^^^^^^(Echo/Invalid Dir Options^&Exit/b0^)”执行Echo/“%%~G”| Findstr/LIC:“%2”>Nul%~3(%%~4%%~g2>Nul |;Echo/命令使用错误:“%~4”%G)
命令行中的用法示例:

C:\Users\tcdou\Desktop $> $MATCH "/A:-D /B *.bat" "$" "&&" "Echo/[%~tG]         " "                     [%~zG   ]"
[05/09/2020 09:35 PM]            $Array.bat                     [8940   ]
[26/09/2020 12:13 PM]            $base.bat                      [4930   ]
[12/09/2020 04:11 PM]            $Case.bat                      [748    ]
[23/09/2020 11:50 AM]            $compare.bat                   [1737   ]
[12/09/2020 03:10 PM]            $find.bat                      [334    ]
[24/09/2020 12:28 PM]            $game.bat                      [4161   ]
[15/09/2020 02:41 AM]            $Group.bat                     [463    ]
[26/09/2020 02:36 PM]            $in.bat                        [511    ]
[25/09/2020 04:58 AM]            $LA.bat                        [2098   ]
[23/09/2020 10:39 AM]            $label.bat                     [156    ]
[26/09/2020 11:55 AM]            $list.bat                      [1554   ]
[28/09/2020 12:48 AM]            $MATCH.bat                     [744    ]
[23/09/2020 03:55 AM]            $mc2.bat                       [1697   ]
[07/09/2020 01:35 AM]            $nArray.bat                    [1581   ]
[07/09/2020 12:55 AM]            $oldlost.bat                   [1199   ]
[12/09/2020 12:35 AM]            $remstr.bat                    [572    ]
[12/09/2020 12:23 AM]            $remstr2.bat                   [682    ]
[12/09/2020 03:38 AM]            $RGN.bat                       [1277   ]
[12/09/2020 01:36 PM]            $SSM.bat                       [850    ]
[10/09/2020 06:37 AM]            $Str.bat                       [515    ]
[22/09/2020 01:37 AM]            $VT.bat                        [1194   ]
[06/09/2020 11:59 PM]            test$.bat                      [1184   ]

Dir
的输出通过管道传输到
Findstr
,检查不需要的字符串,并使用条件运算符
|
对不包含不需要的字符串的文件执行命令。很抱歉,我在这方面非常陌生,如何将其合并到上面的脚本中?有关如何在批处理文件中将脚本用作可调用函数的信息,请搜索
batch functions
。还要阅读cmd.exe中的
call/?
输出,了解如何调用标签或脚本。