找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16247|回复: 6

[文件操作] 批处理如何如何多个条件执行复制移动文件?

[复制链接]
发表于 2021-12-1 00:24:48 | 显示全部楼层 |阅读模式
文件夹 B 里面(包括所有子文件夹)文件复制到 A 文件夹里面

1.指定名称
2.指定后缀
3.指定大小以下

需要上述三个条件全部满足才执行复制
----------------------------
  1. @echo on

  2. @SET target=G:\a
  3. @SET raw=G:\b

  4. @for /r %raw% %%a in (*Report*) do (
  5. copy "%%a" %target%
  6. )

  7. choice /t 2 /d n > nul
复制代码
--------------------------------------------------

目前写到指定名称或者指定后缀,但是三个条件同时满足的话还不是很会...
希望能得到一些帮助
谢谢各位..
发表于 2021-12-1 10:05:23 | 显示全部楼层
本帖最后由 wudi61600963 于 2021-12-1 10:36 编辑

可以考虑使用 for 语句、dir 语句 和 robocopy 来实现,robocopy 不支持XP等上古系统。

for 实现范例:
  1. for /R "源目录" %%# in (文件名.后缀名) do if %%~z# lss 最大文件大小 copy "%%#" "目标路径" >nul
复制代码
robocopy 实现范例:
  1. robocopy "源目录 " "目标目录 " 文件名.扩展名 /MAX:最大文件大小 /COPY:DAT /NJH /NJS /NS /NC /NFL /NDL >nul
复制代码
楼主应结合自身实际项目需求查询对应语法进行修改后使用。
发表于 2021-12-1 10:11:42 | 显示全部楼层
  1. for /f "delims=" %%a in ('dir /s /b /a-d *Report*.txt *Report*.jpg *Report*.doc') do if %%~za lss 1000000 copy...
复制代码
发表于 2021-12-1 10:28:48 | 显示全部楼层
回复 1# 半角杯
  1. @echo off
  2. set "FolderTo=G:\a"
  3. set "FolderFrom=G:\b"
  4. if not exist "%FolderTo%" (
  5.     goto :eof
  6. )
  7. if not exist "%FolderFrom%" (
  8.     goto :eof
  9. )
  10. pushd "%FolderFrom%"
  11. for /f "delims=" %%i in ('dir /b /s /a-d *Report*.txt') do (
  12.     if %%~zi lss 1000000 (
  13.         copy /y "%%i" "%FolderTo%"
  14.     )
  15. )
复制代码
 楼主| 发表于 2021-12-1 10:48:59 | 显示全部楼层
回复 2# wudi61600963


谢谢解答, 谢谢
 楼主| 发表于 2021-12-1 10:49:16 | 显示全部楼层
回复 3# qixiaobin0715


    非常感谢
 楼主| 发表于 2021-12-1 10:49:31 | 显示全部楼层
回复 4# Batcher


    试过了,可行,十分感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 17:57 , Processed in 0.031162 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表