标题: [文件操作] 批处理如何如何多个条件执行复制移动文件? [打印本页]
作者: 半角杯 时间: 2021-12-1 00:24 标题: 批处理如何如何多个条件执行复制移动文件?
文件夹 B 里面(包括所有子文件夹)文件复制到 A 文件夹里面
1.指定名称
2.指定后缀
3.指定大小以下
需要上述三个条件全部满足才执行复制
----------------------------- @echo on
-
- @SET target=G:\a
- @SET raw=G:\b
-
- @for /r %raw% %%a in (*Report*) do (
- copy "%%a" %target%
- )
-
- choice /t 2 /d n > nul
复制代码
--------------------------------------------------
目前写到指定名称或者指定后缀,但是三个条件同时满足的话还不是很会...
希望能得到一些帮助
谢谢各位..
作者: wudi61600963 时间: 2021-12-1 10:05
本帖最后由 wudi61600963 于 2021-12-1 10:36 编辑
可以考虑使用 for 语句、dir 语句 和 robocopy 来实现,robocopy 不支持XP等上古系统。
for 实现范例:- for /R "源目录" %%# in (文件名.后缀名) do if %%~z# lss 最大文件大小 copy "%%#" "目标路径" >nul
复制代码
robocopy 实现范例:- robocopy "源目录 " "目标目录 " 文件名.扩展名 /MAX:最大文件大小 /COPY:DAT /NJH /NJS /NS /NC /NFL /NDL >nul
复制代码
楼主应结合自身实际项目需求查询对应语法进行修改后使用。
作者: qixiaobin0715 时间: 2021-12-1 10:11
- for /f "delims=" %%a in ('dir /s /b /a-d *Report*.txt *Report*.jpg *Report*.doc') do if %%~za lss 1000000 copy...
复制代码
作者: Batcher 时间: 2021-12-1 10:28
回复 1# 半角杯 - @echo off
- set "FolderTo=G:\a"
- set "FolderFrom=G:\b"
- if not exist "%FolderTo%" (
- goto :eof
- )
- if not exist "%FolderFrom%" (
- goto :eof
- )
- pushd "%FolderFrom%"
- for /f "delims=" %%i in ('dir /b /s /a-d *Report*.txt') do (
- if %%~zi lss 1000000 (
- copy /y "%%i" "%FolderTo%\"
- )
- )
复制代码
作者: 半角杯 时间: 2021-12-1 10:48
回复 2# wudi61600963
谢谢解答, 谢谢
作者: 半角杯 时间: 2021-12-1 10:49
回复 3# qixiaobin0715
非常感谢
作者: 半角杯 时间: 2021-12-1 10:49
回复 4# Batcher
试过了,可行,十分感谢
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |