天天看點

BAT 批處理實作複制指定檔案夾内的指定類型的多個檔案到另一個檔案夾(findstr &delims的使用)

以下批處理實作的功能,将GeneratePath路徑下的DestExt類型檔案 除過NoCopyFileName檔案複制到DestnationPath路徑下

1>未複制

BAT 批處理實作複制指定檔案夾内的指定類型的多個檔案到另一個檔案夾(findstr &delims的使用)

2>複制完成

BAT 批處理實作複制指定檔案夾内的指定類型的多個檔案到另一個檔案夾(findstr &delims的使用)
set  /a CopyNum=0
REM 記錄未複制檔案的數量
set  /a NoCopyNum=0

REM 不需要複制的檔案名以:隔開
set NoCopyFileName=123:234:456


::設定檔案源檔案位置
Set GeneratePath=..\BAT\JK2
::設定檔案目标粘貼位置
Set DestnationPath=..\BAT\JK3

::設定粘貼檔案類型
set DestExt=*.h
set DestExt_2=*.txt


IF NOT EXIST "%GeneratePath%" (
echo GeneratePath is not find 
GOTO end) 

@for  /f "delims=" %%i in ('dir  /b/a-d/s %GeneratePath%\%DestExt%') do (

REM /a 表示右邊的變量為數字量 %%~nxi 檔案名帶字尾  %%~ni 檔案名不帶字尾 
REM  1>nul将不顯示正确的傳參結果
echo %NoCopyFileName% | findstr /C:"%%~ni" 1>nul
if errorlevel 1 (
  echo got one - %%~nxi not found

@xcopy %GeneratePath%\%%~nxi  %DestnationPath%\  /d /y /i
::echo errorlevelxcopy %errorlevel%
set  /a CopyNum+=1
) ELSE (
  echo got zero - found %%~nxi
 set  /a NoCopyNum+=1 
)
)

@echo CopyNum is %CopyNum%   NoCopyNum is %NoCopyNum% 

set  /a CopyNum=0
set  /a NoCopyNum=0

:end
           

繼續閱讀