使用windows命令行复制匹配的文件,但有例外吗?

使用windows命令行复制匹配的文件,但有例外吗?,windows,cmd,Windows,Cmd,我需要将存储在多个目录中的多个文件复制到其他几个目录中。我很容易做到这一点,但事实证明一个文件名更具挑战性,因为它与其他文件名冲突。以下是我目前掌握的情况: SET %ITER% = %%G FOR /R H:\FILES\ "%%G" IN (RC*.pdf) DO ( IF %ITER:~0,3% == "RCC" () IF %ITER:~0,3% == "RCS" () ELSE ( COPY "%%G" H:\RC\ ) ) PAUSE 我需要复制名称

我需要将存储在多个目录中的多个文件复制到其他几个目录中。我很容易做到这一点,但事实证明一个文件名更具挑战性,因为它与其他文件名冲突。以下是我目前掌握的情况:

SET %ITER% = %%G
FOR /R H:\FILES\ "%%G" IN (RC*.pdf) DO (
    IF %ITER:~0,3% == "RCC" ()
    IF %ITER:~0,3% == "RCS" ()
    ELSE ( COPY "%%G" H:\RC\ )
    )
PAUSE
我需要复制名称与RC匹配的所有文件,但跳过与RCC或RCS匹配的任何文件,因为这些文件位于单独的目录中。这些文件名为“RC 0000.pdf”,其中0000是一个数字。

用于/f“delims=“%%a in('
目录/a-d/b/s“h:\files\RC*.pdf”
^|findstr/r/i/e/c:“\\RC[^SC][^\\]*\.pdf”
“)是否复制“%%a”h:\rc\
使用
dir
命令枚举所有
RC*.pdf
文件,并使用
findstr
命令筛选此列表,删除不需要的文件

不要使用shell脚本(批处理文件)。改用PowerShell。
Copy Item
cmdlet具有
-exclude
参数。(您最好现在就开始学习PowerShell。这项投资将非常值得。)