批处理文件 - 提取具有匹配文件扩展名的所有文件

时间:2017-11-08 15:14:33

标签: batch-file

我想通过批处理文件从NAS获取所有字体文件并将其复制到文件夹中。

我想出了这个。它可以工作,但它从头开始搜索每个新文件扩展名都不好(搜索花费的时间是8 TB)。

如何对所有文件扩展名同时执行此操作?

@ECHO off
SET font[0]=OTF
SET font[1]=TTF
SET font[2]=FNT
SET font[3]=WOFF
SET font[4]=WOFF2
SET font[5]=AFM
SET font[6]=AMFM
SET font[7]=BDF
SET font[8]=CHA
SET font[9]=CHR
SET font[10]=COMPOSITEFONT
SET font[11]=DFONT
SET font[12]=EOT
SET font[13]=ETX
SET font[14]=EUF
SET font[15]=F3F
SET font[16]=FFIL
SET font[17]=FONFOT
SET font[18]=GDR
SET font[19]=GF
SET font[20]=GXF
SET font[21]=LWFN
SET font[22]=MCF
SET font[23]=MF
SET font[24]=MXF
SET font[25]=NFTR
SET font[26]=ODTTF
SET font[27]=PCF
SET font[28]=PFA
SET font[29]=PFB
SET font[30]=PFM
SET font[31]=PFR
SET font[32]=PKJ
SET font[33]=PM
SET font[34]=SFD
SET font[35]=SFP
SET font[36]=SUIT
SET font[37]=T65
SET font[38]=TFM
SET font[39]=TTC
SET font[40]=TTE
SET font[41]=TXF
SET font[42]=VFB
SET font[43]=VLW
SET font[44]=VNF
SET font[45]=ABF
SET font[46]=ACFM
SET font[47]=XFN
SET font[48]=XFT
SET font[49]=YTF

ECHO Suche Fonts

PUSHD "\\192.168.0.222\DataCenter2"

FOR /F "tokens=2 delims==" %%s in ('SET font[') do FOR /R %%F in ("*.%%s") DO ECHO Kopiere nach "C:\fonts\ausgabe\%%~nxF" & COPY "%%F" "C:\fonts\ausgabe\%%~nxF" /Z /Y

ECHO Suche beendet

TIMEOUT 60

1 个答案:

答案 0 :(得分:0)

FOR /F "delims=" %%s in ('
 dir /s/b/a-d *.*^|findstr /L /E /I /g:"fontexts.txt"') do ECHO Kopiere nach "C:\fonts\ausgabe\%%~nxF" & COPY "%%F" "C:\fonts\ausgabe\%%~nxF" /Z /Y

其中" fontexts.txt"包含

  

杂项文件
  .TTF
  .FNT
  ...等

您的问题是您正在执行49次整个扫描。

此方法执行没有目录名的完整目录扫描(即仅文件路径),然后使用findstr过滤结果,检查结束{{1}的/L文字匹配/E无论案例/i