【链】BAT 批处理实现复制指定文件夹内的指定类型的多个文件到另一个文件夹


set  /a CopyNum=0
REM 记录未复制文件的数量
set  /a NoCopyNum=0
 
REM 不需要复制的文件名以:隔开
set NoCopyFileName=123:234:456
 
 
::设置文件源文件位置
Set GeneratePath=..\成品节目档案\专题
::设置文件目标粘贴位置
Set DestnationPath=..\ARCH\专题节目
 
::设置粘贴文件类型
set DestExt=*.mp4
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

资料原文,请 点击阅读

技术 2022-10-17 16:41:48 通过 网页 浏览(120)

共有3条评论!

  1. 匿名网友 2022-10-18 17:48:13 1#

    文件路径支持中文,注意批处理文件路径和源文件、目标文件路径的写法。

  2. 匿名网友 2022-10-20 17:43:50 2#

    注意:文件名不支持空格!

  3. 匿名网友 2022-10-20 19:18:31 3#

    在批处理命令的最后一行加上pause,可以让命令执行完毕不退出界面,方便查看执行情况。

      博主回复好主意!

发表评论