Следующий код работает, если в имени файла только один дефис.Он использует вложенную команду FOR для разделения имени базового файла по дефису.
@echo off
for %%F in (*.doc ) do (
echo full name: %%F
echo name without suffix: %%~nF
for /F "tokens=2 delims=-" %%G IN ("%%~nF") DO (
IF /I "%%G"=="important" (echo File is important) else Echo File is not important
)
)
Этот второй набор кода проверяет, заканчивается ли имя базового файла в строке, которую вы ищете, с помощью FINDSTR
команда.Условное выполнение затем используется, чтобы определить, какая команда эха выполняется.Двойной амперсанд используется для выполнения, если предыдущая команда была успешной.Двойной канал используется для выполнения, если предыдущая команда не была успешной.
for %%F in (*.doc ) do (
set "flag="
echo full name: %%F
echo name without suffix: %%~nF
echo %%~nF|findstr /E /I "important" >nul 2>&1 &&echo File is Important || echo file is not important
)