返回列表 发帖

[文本处理] 根据日期提取文件的bat代码怎么修改?

@echo off&setlocal EnableDelayedExpansion
set /p x=W外勤/Z主任:
if /i "%x%"=="w" (set /p d="请输入视频日期,按回车键!(注意日期格式:2015-05-01):"
cd /d h:\DCIM/100MEDIA\
for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t *.mov^|findstr /b [0-9]') do (
        if "%%a"=="!d:~,4!-!d:~5,2!-!d:~8,2!"  echo f | xcopy "%%d" /y e:\视频\外勤\%d%\
)
) else if /i "%x%"=="z" (set /p d="请输入视频日期,按回车键!(注意日期格式:2015/05/01):"
cd /d h:\DCIM/100MEDIA\
for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t *.mov^|findstr /b [0-9]') do (
        if "%%a"=="!d:~,4!-!d:~5,2!-!d:~8,2!"  echo f | xcopy "%%d" /y e:\视频\主任\%d%\
)
)
IF not EXIST "e:\视频\外勤\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕!
)   
pause>nulCOPY
按7楼老师的代码测试,仍然失败!

[补充]请高手瞧瞧、看看,这个bat代码怎么修改

[补充]回复 1# 7016427

执行时,黑屏闪一下就过了,不知哪里错?

TOP

你检查一下 少了 几个 “)”

TOP

[修改]根据日期提取文件的bat代码怎么修改?

[修改]回复 3# terse
你好!我添加了几个括号“)"后,可以执行完,但是没有拷贝到文件。
@echo off&setlocal EnableDelayedExpansion
echo 请选择巡检仪
set /p x=W外勤/Z主任:
if /i "%x%"=="w" (
set /p d="请输入视频日期,按回车键盘:"
for /f "tokens=1-3 delims=/" %%i in ("%d%") do (
    set yyyy=%%i
    set mm=10%%j
    set dd=10%%k
)
set d=!yyyy!-!mm:~-2!-!dd:~-2!
cd /d h:\DCIM/100MEDIA\
for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t^|findstr /b [0-9]') do (
        if "%%a"=="!d:~,4!-!d:~5,2!-!d:~8,2!" (
echo f | xcopy "%%d" /y "e:\视频\外勤\%d%\"
)
)
) else if /i "%x%"=="z" (
set /p d="请输入视频日期,按回车键:"
for /f "tokens=1-3 delims=/" %%i in ("%d%") do (
    set yyyy=%%i
    set mm=10%%j
    set dd=10%%k
)
set d=!yyyy!-!mm:~-2!-!dd:~-2!
cd /d h:\DCIM/100MEDIA\
for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t^|findstr /b [0-9]') do (
        if "%%a"=="!d:~,4!-!d:~5,2!-!d:~8,2!" (
echo f | xcopy "%%d" /y "e:\视频\主任\%d%\"
  )
)
)
IF not EXIST "e:\视频\%x%\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕!
)   
pause

TOP

你看看  “%%a” 和  "!d:~,4!-!d:~5,2!-!d:~8,2!" 这里格式是否一致

TOP

【补充说明】根据日期提取文件的bat代码怎么修改?

本帖最后由 7016427 于 2015-5-29 18:30 编辑

回复 5# terse
@echo off&setlocal EnableDelayedExpansion
REM 视频mov,照片jpeg,录音wav
set /p d="请输入视频日期,按回车键:"
REM 日期补零
for /f "tokens=1-3 delims=/" %%i in ("%d%") do (
    set yyyy=%%i
    set mm=10%%j
    set dd=10%%k
)
set d=!yyyy!-!mm:~-2!-!dd:~-2!
cd /d h:\DCIM/100MEDIA\
for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t^|findstr /b [0-9]') do (
        if "%%a"=="!d:~,4!-!d:~5,2!-!d:~8,2!" (
echo f | xcopy "%%d" /y "e:\视频\外勤\%d%\"
)
)
IF not EXIST "e:\视频\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕!
)   
pause
以上执行正常!主要是巡检仪有两个(外勤、主任)要分开存入。因此,主任的要存入:e:\视频\主任\%d%\
补充:实际提取文件路径都是一样的,只是存放的文件夹有点区别,一个放入“外勤”,另一个放入“主任”的区别。我主要想实现选择,判断来达到这个目的。

TOP

本帖最后由 yangfengoo 于 2015-5-29 21:08 编辑
@echo off&setlocal EnableDelayedExpansion
REM 视频mov,照片jpeg,录音wav
set /p x=W外勤/Z主任:
if /i "%x%"==w set #=外勤
if /i "%x%"==z set #=主任
set /p d="请输入视频日期,按回车键:"
REM 日期补零
for /f "tokens=1-3 delims=/" %%i in ("%d%") do (
    set yyyy=%%i
    set mm=10%%j
    set dd=10%%k
)
set d=!yyyy!-!mm:~-2!-!dd:~-2!
cd /d h:\DCIM/100MEDIA\
for /f "tokens=1-3*" %%a in ('dir /a:%-d% /t^|findstr /b [0-9]') do (
        if "%%a"=="!d:~,4!-!d:~5,2!-!d:~8,2!" (
echo f | xcopy "%%d" /y "e:\视频\%#%\%d%\"
)
)
IF not EXIST "e:\视频\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕! )   
pauseCOPY
回复 6# 7016427

TOP

IF not EXIST "e:\视频\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕!
)   COPY
这个判断怎么看怎么有问题,不知道楼主怎么测试的

TOP

【未解决】根据日期提取文件的bat代码怎么修改?

[未解决]回复 7# yangfengoo
你好!测试失败!黑屏闪一下就过了,并没有提取到文件。我输入“w”回车后没有提示输入日期哪一步!

TOP

这个判断怎么看怎么有问题,不知道楼主怎么测试的
yangfengoo 发表于 2015-5-29 20:54

少个 ")"
IF not EXIST "e:\视频\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕! )COPY

TOP

回复 9# 7016427


    7楼已修改。

TOP

【测试失败】根据日期提取文件的bat代码怎么修改?

回复 8# yangfengoo
改为:
IF not EXIST "e:\视频\%#%\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕!
)

TOP

回复 10# terse


    )在下行。

echo f | xcopy "%%d" /y "e:\视频\%#%\%d%\"
怎么会有"e:\视频\%d%"这个路径
IF not EXIST "e:\视频\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕! )   

肯定不成立

TOP

回复 12# 7016427


    还不行?有没有错误提示,发出来

TOP

[测试仍然失败]回复 13# yangfengoo
改为:
IF not EXIST "e:\视频\%#%\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕!
)

TOP

返回列表