@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"
SET "errorfound="
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*" '
) DO (
SET "error="
FOR /f "tokens=1-3*delims=_" %%p IN ("q%%a") DO (
IF "%%p" equ "q" SET error=Y
IF "%%s" neq "" SET error=Y
IF "%%r" equ "" SET error=Y
IF NOT DEFINED error (
FOR /f "tokens=1,2*delims=." %%x IN ("q%%r") DO (
IF "%%x" equ "q" SET error=Y
IF "%%y" equ "" SET error=Y
IF "%%z" neq "" SET error=Y
)
)
IF DEFINED error (
ECHO %%a is invalid FORMAT
SET errorfound=y
) ELSE (ECHO %%a is OK)
)
)
IF DEFINED errorfound (
ECHO error found
PAUSE
) ELSE (
ECHO All OK!
timeout /t 5 >nul
)
GOTO :EOF
你需要改變的sourcedir
設置,以滿足您的具體情況。
下面是一個示例輸出:
a_valid_file.name is OK
_invalid_file.namestartingunderscore is invalid FORMAT
an_invalid_file_name.toomanyundescores is invalid FORMAT
invalid_file.nameinsufficientunderscores is invalid FORMAT
an_invalid_.filenameterminalunderscoreinname is invalid FORMAT
an_extra_invalid_.filenameterminalunderscoreinname is invalid FORMAT
an_invalid_filenamewithnoextension is invalid FORMAT
an_invalid_filenamewith.multiple.extensions is invalid FORMAT
error found
Press any key to continue . . .
如果所有的文件都在有效的格式,程序應該表現出適當方面消息,5秒鐘和終止。
的原理是通過當_
和.
被用作隔板tokenising和利用該if defined
特性切換錯誤是否已發生上的一個實例,通過實例的基礎上向名稱的單獨的部分評估。
謝謝sooo多。創造奇蹟! – user990855