if/set: Problem z ustawieniem zmiennej środowiskowej

Autor: Robert Borkowski <robertborkowski_at_interia.pl>
Data: Tue 26 Dec 2006 - 14:31:12 MET
Message-ID: <nu276pdjtlk$.1f97246v3eula.dlg@40tude.net>
Content-Type: text/plain; charset="iso-8859-2"

Witam

Mój problem dotyczy polecenia if w połączeniu z set (sprawdzałem tylko pod
XP, nie wiem jak w 2000). Ze skryptu wywołuję coś takiego
if "%1"=="-opcja" (
        set REGEXP=s/([ ,;\]?)\2([ ,;\]?)/\\1\1\\2/g
        goto label
)

i dostaję "W tym momencie \2([ było nieoczekiwane."

Początkowo myślałem, że set próbuje przetworzyć to numerycznie, ale
identyczne wyrażenie wykonane poza if nie zwraca błędu i w zmiennej REGEXP
przechowywana jest poprawna warość. W jaki sposób przekazać do tej zmiennej
dane wyrażenie?

Natrafiłem na jeszcze jeden problem z if. Mianowicie:

if "%1"=="" (
        echo pomoc1
        echo.
        echo pomoc2
        echo.
        echo Uzycie: arg1 arg2
        echo opis dlugi dlugi dlugi
        echo opis co skrypt robi -^> opis opis)
                                              ^^^
        echo. opis co skrypt robi -^> opis opis
        goto :eof
)
echo 2

kiedy nie podaję argumentu wszystko wyglada normalnie, poza tym, że nie ma
podkreślonego nawiasu (wyświetla się, gdy jest zakomentowany przez ^),
natomiast gdy podaję argument zamiast "2" wyświetla się "opis co skrypt
robi -> opis opis". Czy to jest normalne zachowanie if?

-- 
Robert Borkowski
robertborkowski at interia dot pl
gg:5295516
Received on Tue Dec 26 14:35:07 2006

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Tue 26 Dec 2006 - 14:42:04 MET