标题: [文件操作] 拷贝监控视频批处理 [打印本页]
作者: zqf1983 时间: 2022-6-27 11:04 标题: 拷贝监控视频批处理
本帖最后由 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时的监控视频拷贝到指定路径下,麻烦高位高手指导下!!!
作者: Batcher 时间: 2022-6-27 11:20
回复 1# zqf1983
08时07分15秒
9时08分11秒
小时前面有0或没有0不固定是吗?
晚上9点08分11秒的文件夹是不是这样:
21时08分11秒
作者: zqf1983 时间: 2022-6-27 11:23
回复 2# Batcher 你好,0是固定有的,01到09, 不好意思没写严谨。
作者: zqf1983 时间: 2022-6-27 11:24
回复 2# Batcher 晚上09时11分08秒,是21时11分08秒。
作者: Batcher 时间: 2022-6-27 17:06
回复 1# zqf1983
D、E、F、G视频文件夹是否有可能重名呢?比如都叫:08时07分15秒
作者: Batcher 时间: 2022-6-27 17:17
回复 1# zqf1983
请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA- @echo off
- cd /d "%~dp0"
- set "DriveList=D E F G"
- set "FromFolder=监控资源\3-201\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%\%%a\%%b\"
- )
- popd
- )
-
- )
复制代码
作者: zqf1983 时间: 2022-6-27 22:39
回复 5# Batcher 不存在重复的文件夹名。太感谢你了,我研究研究代码。
作者: zqf1983 时间: 2022-6-28 22:17
回复 6# Batcher
你好!!高手,我需要扩展下两点需求:
1、3-201是指3栋201教室,如二楼有3-201。。。3-205教室,最高五层,最后一个教室是3-505。需要把所有教室的08时至12时监控视频拷到指定文件夹。
2、存放按每个教室的文件夹存放,如:D\指定文件夹\3-201 D\指定文件夹\3-202。。。如此类推。
研究了一天,用for嵌套没搞定,实在没办法又上来请教了。
作者: zqf1983 时间: 2022-6-28 22:18
@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
这是我自己弄的,不成功。
作者: Batcher 时间: 2022-6-29 09:41
回复 9# zqf1983 - @echo off
- cd /d "%~dp0"
- setlocal enabledelayedexpansion
- set "DriveList=L M N O P Q R S"
- set "ToFolder=D:\指定文件夹"
- if not exist "%ToFolder%" (
- md "%ToFolder%"
- )
- for /l %%x in (2,1,5) do (
- for /l %%y in (1,1,5) do (
- set "FromFolder=监控资源\3-%%x0%%y\2022年06月\26日"
- 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
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |