You are here: PSPad forum > České diskuzní fórum > Zvýrazňování windows shell syntaxe
Goto Page: Previous1 2 3 4 5 6 7 8 9 10 11 ...LastNext
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.
Posted by: lazna | Date: 2015-05-21 16:30 | IP: IP Logged
diky
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%
-----------------------------------------------------------------------------
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.
Posted by: pspad | Date: 2015-05-26 18:49 | IP: IP Logged
Postupne to doladíme
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
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'
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
ERRORLEVELpricemz vsechny podminky mohou byt reversovany pomoci prependovaneho 'NOT'
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
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
Editor PSPad - freeware editor, © 2001 - 2025 Jan Fiala, Hosted by Webhosting TOJEONO.CZ, design by WebDesign PAY & SOFT, code Petr Dvořák, Privacy policy and GDPR