移动名称中带有连字符的tiff / tif文件

时间:2016-06-13 11:18:20

标签: batch-file

我有一个批处理文件,如果文件名有数字,它会将.tiff / tif文件从一个文件夹移动到另一个文件夹,例如, 0000002341567.tif。它工作正常但是 我的要求是移动文件,即使它的名称如000000234156-7或0000002341567-s 所以说文件名可以后缀 - 和一位数字或连字符和字符。

for %%I in ("C:\Documents\Pictures\*.tif*") do (
    if !FileCount! EQU 0 (
        echo Exiting after having moved already %FileCount% TIF files.
        goto LoopEnd
    )
    set "HasOnlyDigits=1"
    for /F "tokens=1 delims=0123456789" %%T in ("%%~nI") do set "HasOnlyDigits=%%T"
    if "!HasOnlyDigits!" == "1" (
        move /Y "%%I" "%FolderGood%"
    ) 

1 个答案:

答案 0 :(得分:0)

findstr有一套非常有限的REGEX,但它足以完成这项任务:

@echo off
set filecount=1
setlocal enabledelayedexpansion
for %%I in ("*.tif*") do (
    if !FileCount! EQU 0 (
        echo Exiting after having moved already %FileCount% TIF files.
        goto LoopEnd
    )
     echo %%~nI|findstr /R "^[0-9][0-9]*-.$" >nul && (
        echo yes %%I
        ECHO move /Y "%%I" "%FolderGood%"
        set filecount+=1
    ) || (
        echo no  %%I
    )
)
:loopend

这里的REGEX包括:

^行的开头(字符串)
[0-9]任何数字
[0-9]*任何数字(零或任何数字的任何数字)(之前[0-9]确保,最少有一位数)
-破折号 .任何字符
$行尾(字符串)