以下批處理實現的功能,將GeneratePath路徑下的DestExt類型文件 除過NoCopyFileName文件複製到DestnationPath路徑下
1>未複製
2>複製完成
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