[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

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

[谢谢]回复 19# yangfengoo

TOP

delims=/改成delims=-

TOP

[执行错误]回复 1# 7016427
执行时,创建日期文件夹名错误!
测试后,显示错误的日期文件夹名:2015-05-30-10-10,正确的应该显示:2015-05-30

TOP

【已解决】再次请高手,修改这个代码

@echo off
setlocal EnableDelayedExpansion
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 *.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>nul
3楼老师谢谢老师!
1

评分人数

TOP

if /i "%x%"=="w" set #=外勤
if /i "%x%"=="z" set #=主任

TOP

回复 17# 7016427
@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="请输入视频日期,按回车键:"

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
测试,文件夹能按日期命名,但是,以上红色代码语句并没有生效。提取的文件没有按照代码定义的“外勤“或”主任”文件夹存放。

TOP

[测试结果,存在问题]回复 7# yangfengoo
7楼代码测试结果!

TOP

[没有提示]回复 14# yangfengoo
黑屏就是过了,没有提示输入日期!

TOP

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

TOP

回复 12# 7016427


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

TOP

回复 10# terse


    )在下行。

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

肯定不成立

TOP

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

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

TOP

回复 9# 7016427


    7楼已修改。

TOP

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

少个 ")"
  1. IF not EXIST "e:\视频\%d%" (echo %d%,没有视频提取!) ELSE (echo %d%,提取视频完毕! )
复制代码

TOP

返回列表