Войти

Показать полную графическую версию : [решено] в пакетных файлах является недопустимым: %~dpf". В КОММЕНТАХ! :-o


kiripanda
01-08-2011, 19:24
@echo off
rem Мне необходимо написать в комменте следующий код:
rem blah-blah-blah "%L" "%%~dpf"
echo OK. Батник работает.
pause
rem Какого Х интерпретатор суётся куда его не просят?
rem WinXP SP3 Rus

Foreigner
01-08-2011, 20:11
kiripanda,
Забавный баг. Как побороть пока не нашел, win-7 64 hp

ferget
01-08-2011, 20:19
Забавный баг »

а как это обойти?

пока получилось так %"%L"%, но это не очень хорошо

Vadikan
02-08-2011, 01:38
kiripanda, REM - это команда (REM /?), вот интерпретатор ее и обрабатывает.
Обойти можно так:
@echo off
GOTO Comment1End
REM Мне необходимо написать в комменте следующий код:
REM blah-blah-blah "%L" "%%~dpf"
:Comment1End
echo OK. Батник работает.
pause

Можете даже REM убрать...

SendMessage
02-08-2011, 02:06
пока получилось так %"%L"%, но это не очень хорошо »
Достаточно просто %%L

amel27
02-08-2011, 03:38
единственно, что требуется - быть аккуратным с "процентами",
поскольку они раскрываются ДО интерпретации строки (как комментария)
REM blah-blah-blah "%L" "%%~dpf"

исчерпывающий ответ от jeb: analysis: ":: is not the same as rem" (http://www.dostips.com/forum/viewtopic.php?f=3&t=1003)

P.S. это не баг - it is by design ;)

Foreigner
02-08-2011, 07:44
Нет. Не работает, это самый настоящий баг:

@echo off

rem в батниках используйте %%L вместо %L
rem так же используйте %%~dpi вместо %~dpi

echo Ok
pause 1>nul


> rem /?
Помещение комментариев в пакетные файлы и файл CONFIG.SYS.

REM [текст]

Комментарии на то и комментарии, что бы помещать в них любую информацию и не задумываться повлияет ли она сам батник.

amel27
02-08-2011, 08:34
Foreigner, такое поведение - существенная часть алгоритма, как он задуман разработчиками, причем его изменение потянет кучу проблем с наследуемым кодом - проще переписать CMD.EXE "с нуля", но это уже будет другой CMD/BAT... т.е. (по определению) это уже не баг

P.S. есть мнение, что Windows - баг ;)

Foreigner
02-08-2011, 08:49
amel27,
Я все собираюсь спросить. Почему вы пишете тусклым цветом? Глаза вылазят, серьезно.
проще переписать CMD.EXE "с нуля"
В общем да, но они пошли другим путем.

amel27
02-08-2011, 09:00
Почему вы пишете тусклым цветом? Глаза вылазят, серьезно. »ну типа оффтоп (тег OFF)

kiripanda
02-08-2011, 17:55
пока получилось так %"%L"%, но это не очень хорошо »
Достаточно просто %%L »
Не пойдёт ни то, ни другое. Это параметры, и они должны быть именно такими (http://forum.wincmd.ru/viewpost.php?p=81020)

единственно, что требуется - быть аккуратным с "процентами", »
Но как?! Для полукилобайтного батника писать отдельный файл с комментариями?
Не слишком ли много чести? Да и потеряется эта "инструкция" на раз-два

Vadikan
СПАСИБО

SendMessage
03-08-2011, 01:47
Как правильно сказал amel27, нужно быть аккуратными с процентами. И там, где в комментах они проставлены - дополнять до четного числа, например так:
:: Мне необходимо написать в комменте следующий код:
::% blah-blah-blah "%L" "%%~dpf"

amel27
03-08-2011, 05:51
Это параметры, и они должны быть именно такими »в данном конкретном случае проблема возникла еще и по причине того, что проценты в батнике и командной строке обрабатываются по разному - то, что допустимо для одного, запрещено для другого




© OSzone.net 2001-2012