2016-06-13 11 views
0

ファイル名に数字がある場合は、.tiff/tifファイルを別のフォルダに移動するバッチファイルがあります(例: 0000002341567.tif)。それはうまくいきますが、 私の要件は000000234156-7または0000002341567-sのような名前を持っていてもファイルを移動することです ファイル名には - と1桁の数字またはハイフンと文字を付けることができます。名前にハイフンを含むtiff/tifファイルを移動する

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=" %%T in ("%%~nI") do set "HasOnlyDigits=%%T" 
    if "!HasOnlyDigits!" == "1" (
     move /Y "%%I" "%FolderGood%" 
    ) 

答えて

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 
正規表現は、ここで構成されてい

:行(列)の

^スタート
[0-9]任意の数字
[0-9]*任意の数字(任意の数字のゼロまたは任意の数字)(前の[0-9]は、最小値行の1桁)
-ダッシュ
.任意の文字
$エンド(文字列)

関連する問題