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

[文件操作] 拷贝监控视频批处理

[复制链接]
发表于 2022-6-27 11:04:17 | 显示全部楼层 |阅读模式
本帖最后由 zqf1983 于 2022-6-27 13:46 编辑

监控视频路径: D:\监控资源\3-201\26日\08时07分15秒,3-201是教室名,08时07分15秒是生成监控视频的文件夹,其中08时固定,07分15秒不固定,有可能是08分00秒。其它盘E、F、G也有视频文件夹,例如09时08分11秒的在:E\监控资源\3-201\26日\09时08分11秒,文件夹下。需求是想把08时到12时的监控视频拷贝到指定路径下,麻烦高位高手指导下!!!
发表于 2022-6-27 11:20:05 | 显示全部楼层
回复 1# zqf1983


08时07分15秒
9时08分11秒
小时前面有0或没有0不固定是吗?

晚上9点08分11秒的文件夹是不是这样:
21时08分11秒
 楼主| 发表于 2022-6-27 11:23:25 | 显示全部楼层
回复 2# Batcher     你好,0是固定有的,01到09, 不好意思没写严谨。
 楼主| 发表于 2022-6-27 11:24:29 | 显示全部楼层
回复 2# Batcher 晚上09时11分08秒,是21时11分08秒。
发表于 2022-6-27 17:06:07 | 显示全部楼层
回复 1# zqf1983


    D、E、F、G视频文件夹是否有可能重名呢?比如都叫:08时07分15秒
发表于 2022-6-27 17:17:15 | 显示全部楼层
回复 1# zqf1983


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
  1. @echo off
  2. cd /d "%~dp0"
  3. set "DriveList=D E F G"
  4. set "FromFolder=监控资源\3-201\26日"
  5. set "ToFolder=D:\指定文件夹"
  6. if not exist "%ToFolder%" (
  7.     md "%ToFolder%"
  8. )
  9. for %%a in (%DriveList%) do (
  10.     if exist "%%a:\%FromFolder%" (
  11.         pushd "%%a:\%FromFolder%"
  12.         for /f "delims=" %%b in ('dir /b /ad ^| findstr /i /b /c:"08时" /c:"09时" /c:"10时" /c:"11时" /c:"12时"') do (
  13.             xcopy /e /y "%%b" "%ToFolder%\%%a\%%b"
  14.         )
  15.         popd
  16.     )

  17. )
复制代码
 楼主| 发表于 2022-6-27 22:39:09 | 显示全部楼层
回复 5# Batcher     不存在重复的文件夹名。太感谢你了,我研究研究代码。
 楼主| 发表于 2022-6-28 22:17:47 | 显示全部楼层
回复 6# Batcher
  你好!!高手,我需要扩展下两点需求:
1、3-201是指3栋201教室,如二楼有3-201。。。3-205教室,最高五层,最后一个教室是3-505。需要把所有教室的08时至12时监控视频拷到指定文件夹。
2、存放按每个教室的文件夹存放,如:D\指定文件夹\3-201    D\指定文件夹\3-202。。。如此类推。
研究了一天,用for嵌套没搞定,实在没办法又上来请教了。
 楼主| 发表于 2022-6-28 22:18:34 | 显示全部楼层
@echo off

setlocal enabledelayedexpansion

for /l %%x in (2,1,5) do (

        for /l %%y in (1,1,5) do (


cd /d "%~dp0"
set "DriveList=L M N O P Q R S"
set "FromFolder=监控资源\3-%%x0%%y\2022年06月\26日"
set "ToFolder=D:\指定文件夹"
if not exist "%ToFolder%" (
    md "%ToFolder%"
)
for %%a in (%DriveList%) do (
    if exist "%%a:\%FromFolder%" (
        pushd "%%a:\%FromFolder%"
        for /f "delims=" %%b in ('dir /b /ad ^| findstr /i /b /c:"08时" /c:"09时" /c:"10时" /c:"11时" /c:"12时"') do (
            xcopy /e /y "%%b" "%ToFolder%\3-%%x0%%y\%%b\
        )
        popd
    )

)



    )

)


pause

这是我自己弄的,不成功。
发表于 2022-6-29 09:41:09 | 显示全部楼层
回复 9# zqf1983
  1. @echo off
  2. cd /d "%~dp0"
  3. setlocal enabledelayedexpansion
  4. set "DriveList=L M N O P Q R S"
  5. set "ToFolder=D:\指定文件夹"
  6. if not exist "%ToFolder%" (
  7.     md "%ToFolder%"
  8. )
  9. for /l %%x in (2,1,5) do (
  10.     for /l %%y in (1,1,5) do (
  11.         set "FromFolder=监控资源\3-%%x0%%y\2022年06月\26日"
  12.         for %%a in (%DriveList%) do (
  13.             if exist "%%a:\!FromFolder!" (
  14.                 pushd "%%a:\!FromFolder!"
  15.                 for /f "delims=" %%b in ('dir /b /ad ^| findstr /i /b /c:"08时" /c:"09时" /c:"10时" /c:"11时" /c:"12时"') do (
  16.                     xcopy /e /y "%%b" "%ToFolder%\3-%%x0%%y\%%b\
  17.                 )
  18.                 popd
  19.             )
  20.         )
  21.     )
  22. )
  23. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 21:54 , Processed in 0.019991 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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