Когда я пытаюсь использовать SHIFT
внутри блока IF
я вижу неожиданные результаты. Используя это:
@echo off
if "%1"=="/p" (
echo %1
shift
echo "shifted"
echo %1
)
Я получаю следующее:
C:\>ex.bat /p HAI
/p
"shifted"
/p
Однако, когда я использую этот код:
@echo off
echo %1
shift
echo "shifted"
echo %1
Я получаю это:
C:\>ex.bat /p HAI
/p
"shifted"
HAI
Мне нужен второй вывод, но в логическом блоке, чтобы я мог его перебрать. Я пытаюсь реализовать что-то похожее на Jon здесь: Использование параметров в пакетных файлах в командной строке DOS, но у меня проблемы. Почему это происходит?