You are here: PSPad forum > České diskuzní fórum > Zvýrazňování windows shell syntaxe

Zvýrazňování windows shell syntaxe

Goto Page: Previous1 2 3 4 5 6 7 8 9 10 11 ...LastNext

#21 Re: Kontrola poctu zavorek v batch souboru

Posted by: pspad | Date: 2015-05-21 13:49 | IP: IP Logged

Ja vim, ale ten priklad usetri cas me a eliminuje pripadne nepochopeni.
V dalsim buildu by to melo byt implementovane.

Options: Reply | Quote | Up ^


#22 Re: Kontrola poctu zavorek v batch souboru

Posted by: lazna | Date: 2015-05-21 16:30 | IP: IP Logged

diky

Options: Reply | Quote | Up ^


#23 Re: Kontrola poctu zavorek v batch souboru

Posted by: lazna | Date: 2015-05-22 09:37 | IP: IP Logged

- Pokud napisu dvojitou uvozovku (a automaticky se doplni druha) tak za ni zustane 'cosi' co vypada jako tenke svislitko (pipe), uz nekolikrat jsem si to spletl s kurzorem a psal jsem jinam nez jsem chtel. je to dost neprijemne. Mam Win 7/64bit, 4.6.0-2660 (ale dela to uz dele), pismo Lucida Console, Normalni, 14, Stredoevropske. Pokud prepnu do fontu Terminal, tak to zmizi.

- Nezvyraznuji se vykricnikove promenne. Jsou stejne jako procentni promenne, ale funguji az za prikazem SETLOCAL s parametrem ENABLEDELAYEDEXPANSION ale jen do prikazu ENDLOCAL.

--------------------------------------------------------------------------
set /?

Při zpožděném rozvinutí systémových proměnných se k rozvinutí
systémových proměnných v době provádění příkazu používá jiný znak
(vykřičník). Je-li zpožděné rozvinutí proměnných povoleno, mohly
by uvedené příklady být přepsány tak, aby fungovaly správně:

set PROM=před
if "%PROM%" == "před" (
set PROM=po
if "!PROM!" == "po" @echo Vidíte-li tento text,
fungovalo to
)

set SEZNAM=
for %i in (*) do set SEZNAM=!SEZNAM! %i
echo %SEZNAM%

-----------------------------------------------------------------------------

Options: Reply | Quote | Up ^


#24 Nalezené problémy

Posted by: lazna | Date: 2015-05-26 17:58 | IP: IP Logged

V nasledujici konstrukci se zvyrazni i prvni striska (zrejme jako soucast echovaneho textu) ackoliv patri k pipe (escapuje ji).

for /f %%a in ('echo ahoj ^| iconv -f utf-8 -t cp852 ^| findstr "ah"') do echo %%a

V podstate ma striska v batch fajlech dva vyznamy:

a) pokud stoji bezprostredne pred specialnim znakem, escapuje ho.
b) pokud stoji samostatne jako posledni znak na radku, pak znaci zalomeni dlouheho radku (s tim ze prvni znak na dalsim radku pozbyva pripadneho specialniho vyznamu).

L.

Options: Reply | Quote | Up ^


#25 Re: Nalezené problémy

Posted by: pspad | Date: 2015-05-26 18:49 | IP: IP Logged

Postupne to doladíme winking smiley

Options: Reply | Quote | Up ^


#26 Re: Nalezené problémy

Posted by: lazna | Date: 2015-05-26 19:07 | IP: IP Logged

Vsak jo, ja Vam to sem budu hazet a delejte s tim co uznate za vhodne winking smiley

Options: Reply | Quote | Up ^


#27 Re: Nalezené problémy

Posted by: lazna | Date: 2015-05-29 18:04 | IP: IP Logged

Šiklo by se, kdyby se zvýrazňovala volání návěští a to i podle toho zda ve scriptu takové návěští skutečně existuje:

:funkce

se sice zvýrazní, ale v

call :funkce

už ne. Taky by se hodilo, kdyby se nějak zvýraznila volání neexistujících funkcí (překlepy v jejich názvech) a naopak funkce bez jediného volání (napsané a nepoužité).

-----------------------------------------

Dále by to mohlo rozpoznávat speciální návěští 'GOTO:EOF' kterým se ukončuje funkce a za kterým se běh programu vrací na místo kde ho přes 'GOTO LABEL' opustil.

----------------------------------------

Dále mi chybí zvýraznění podmínek:

if defined street (
call :read_street
) else (
if defined building call :read_building
)

V teto konstrukci dojde jen k zatučnění 'if', 'else' a 'call' (zrejme rozpoznane interni prikazy) ale podminku 'defined' uz to ignoruje stejne tak zavorky. Podminky za IF muzou byt:

DEFINED
EXIST
ERRORLEVEL

pricemz vsechny podminky mohou byt reversovany pomoci prependovaneho 'NOT'

Options: Reply | Quote | Up ^


#28 Re: Nalezené problémy

Posted by: pspad | Date: 2015-05-31 12:50 | IP: IP Logged

Tahle cast by mela byt zpracovana mimo zvyraznovani neexistujicich navesti.

lazna:
Šiklo by se, kdyby se zvýrazňovala volání návěští a to i podle toho zda ve scriptu takové návěští skutečně existuje:

:funkce

se sice zvýrazní, ale v

call :funkce

už ne. Taky by se hodilo, kdyby se nějak zvýraznila volání neexistujících funkcí (překlepy v jejich názvech) a naopak funkce bez jediného volání (napsané a nepoužité).

-----------------------------------------

Dále by to mohlo rozpoznávat speciální návěští 'GOTO:EOF' kterým se ukončuje funkce a za kterým se běh programu vrací na místo kde ho přes 'GOTO LABEL' opustil.

----------------------------------------

Dále mi chybí zvýraznění podmínek:

if defined street (
call :read_street
) else (
if defined building call :read_building
)

V teto konstrukci dojde jen k zatučnění 'if', 'else' a 'call' (zrejme rozpoznane interni prikazy) ale podminku 'defined' uz to ignoruje stejne tak zavorky. Podminky za IF muzou byt:

DEFINED
EXIST
ERRORLEVEL

pricemz vsechny podminky mohou byt reversovany pomoci prependovaneho 'NOT'

Options: Reply | Quote | Up ^


#29 Re: Kontrola poctu zavorek v batch souboru

Posted by: pspad | Date: 2015-05-31 13:00 | IP: IP Logged

lazna:
- Pokud napisu dvojitou uvozovku (a automaticky se doplni druha) tak za ni zustane 'cosi' co vypada jako tenke svislitko (pipe), uz nekolikrat jsem si to spletl s kurzorem a psal jsem jinam nez jsem chtel. je to dost neprijemne. Mam Win 7/64bit, 4.6.0-2660 (ale dela to uz dele), pismo Lucida Console, Normalni, 14, Stredoevropske. Pokud prepnu do fontu Terminal, tak to zmizi.

S temi fonty je to komplikovane, protoze system nevraci uplne presne sirku fontu. Delaji to i posledni buildy? Zkousel jsem to a neprojevuje se to. Osobne jsem si zvykl na font Consolas, ten se mi zda nejlepsi z toho, co MS nabizi.

lazna:
- Nezvyraznuji se vykricnikove promenne. Jsou stejne jako procentni promenne, ale funguji az za prikazem SETLOCAL s parametrem ENABLEDELAYEDEXPANSION ale jen do prikazu ENDLOCAL.

Melo by byt zapracovane. Prosim o otestovani v dalsim buildu

Options: Reply | Quote | Up ^


#30 Re: Kontrola poctu zavorek v batch souboru

Posted by: lazna | Date: 2015-06-04 09:41 | IP: IP Logged

Stale to nefunguje, build 2661.

setlocal ENABLEDELAYEDEXPANSION
echo "!value!"
if "!value!"=="0" echo ahoj
endlocal

Options: Reply | Quote | Up ^


Goto Page: Previous1 2 3 4 5 6 7 8 9 10 11 ...LastNext





Editor PSPad - freeware editor, © 2001 - 2019 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR