У меня возникают проблемы с несколькими операторами if.Ошибка проверки условий «если» - Windows .bat
Переименование файла зависит от строки в третьем столбце (токены = 3). У меня нет проблем с захватом третьей строки столбца и установкой ее переменной% fy%, и никаких проблем с настройкой шестнадцати, семнадцати и восемнадцати переменных. Ошибка возникает при использовании нескольких операторов IF. Примечание. Если я просто запускаю код с инструкцией 1 IF, он работает правильно. Почему многократные ifs отключают это?
@echo off
for /f "tokens=3 delims=, skip=1" %%i in (DownloadedData.csv) do if not defined line set "fy=%%i"
echo %fy%
SET sixteen=^"FY16^
SET seventeen=^"FY17^
SET eightteen=^"FY18^
IF %fy% == %sixteen% goto :YEAR16
IF %fy% == %seventeen% goto :YEAR17
IF %fy% == %eightteen% goto :YEAR18
:YEAR16
set "filename=DATA_2016.csv"
echo %filename%
goto :COMMONEXIT
:YEAR17
set "filename=DATA_2017.csv"
echo %filename%
goto :COMMONEXIT
:YEAR18
set "filename=DATA_2018.csv"
echo %filename%
goto :COMMONEXIT
:COMMONEXIT
pause
REM - Code then goes on to use the filename variable to rename the file in the download folder.
Когда вы говорите «расцепления это вверх» , что вы имеете в виду? В чем причина нежелательных действий нескольких операторов if? – ManoDestra
«Синтаксис команды неверен» –
Да, я тоже получаю это при запуске теста. Проблема заключается в вашей строке 'SET sixteen = ^" FY16^'. Это не выглядит корректно для меня.^Является побитовой операцией ИЛИ, поэтому я не знаю, что это делает со строкой. И когда я запускаю который устанавливает команду из командной строки, он запрашивает у меня ввод для добавления в переменную. – ManoDestra