Пакетные команды Windows 7 CMD и BAT, использующие GOTO :LABEL
, не ограничены 8 символами после символа «:», как первоначально было отмечено исходным постером, когда они выполняются напрямую или вызываются из другого пакетного файла.
т.е.,
@echo off
SET VARIABLE=2
if %VARIABLE%.==. GOTO :LABELNUMBERZERO
if %VARIABLE%.==1. GOTO :LABELNUMBERONE
if %VARIABLE%.==2. GOTO :LABELNUMBERTWO
if %VARIABLE%.==3. GOTO :LABELNU
if %VARIABLE%.==4. GOTO :LABELN
GOTO :ENDTHISLONGTHING
:LABELNUMBERZERO
echo your variable was " "
GOTO :ENDTHISLONGTHING
:LABELNUMBERONE
echo your variable was "1"
GOTO :ENDTHISLONGTHING
:LABELNUMBERTWO
echo your variable was "2"
:ENDTHISLONGTHING
:LABELNU
echo your variable was "3"
:ENDTHISLONGTHING
:LABELN
echo your variable was "4"
:ENDTHISLONGTHING
Результат этого:
ваша переменная была "2"
Если я set
VARIABLE=4
, результат будет:
ваша переменная была "4"
Таким образом, DOS теперь видит даже с одинаковыми именами (начальные символы) как уникальные метки, даже если в пакетном файле уже есть такое же содержимое более короткой метки.