2017-02-20 11 views
1

Есть несколько файлов в папке какВ пакетном файле после того, как «цикл», это не выполняется «если еще» заявление

abc-xyz-1-01022017 
abc-xyz-2-01022017 
abc-xyz-1-02022017 

и т.д. Я переборе всех этих файлов, и я вошел проверки пользователем дату %1 с датой в имени файла, например 01022017. Для корректного выполнения цикла, но после этого он не проверяет условие. Вот мой код

for /f "tokens=1,2,3,4,5 delims=-." %%a in ('dir /b D:\NewFolder *-*-*-*.*') do echo set filename=%%a-%%b-%1 set date=%%d 
IF [%1]==%date% (echo "same date") else (echo "different date") 

ответ

0
  • Если вы просто добавив команду после команды отделенной с пространства они не обязательно выполняется.
  • Вы можете добавлять команды с помощью & или помещать их в блок кода , окруженный круглыми скобками.
  • Для варов действительны только следующие действия в той же строке или внутри того же кодового блока.
  • Сравнение нескольких файлов не может иметь ни одного результата, поэтому эхо должно содержать файл, на который он ссылается.
  • Сравнение даты в скобках с датой без скобок всегда будет терпеть неудачу.

Просто попробуйте угадать, что вы можете иметь в виду:

@Echo off 
for /f "tokens=1-5 delims=-." %%a in (
    'dir /b D:\NewFolder\*-*-*-*.*' 
) do (
    IF [%1]==[%%d] (
    echo same date  %1 -- %%a-%%b-%%c-%%d.%%e 
) else (
    echo different date %1 -- %%a-%%b-%%c-%%d.%%e 
) 
)