Diskuze: Porovnávanie reťazcov s medzerami. (Batch)
Člen
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Máš nějaký rozumný důvod se učit, či cokoli dělat, v batchi? Raději bych volil bash (.sh), který rozumně rozjedeš i na Windows.
Naozaj chápem, čo tým chceš povedať. Samozrejme že sa chcem učiť aj iné (pre mňa nové) programovacie jazyky. niečo v bashi som už videl, skúšal editovať a viem že je dosť podobný batchu. Ale aj tak zatiaľ, z osobných dôvodov preferujem batch. Okrem toho, to ku čomu sa na tento (problém?) pýtam je, že práve pridávam nejaké tie featury ku môjmu už existujúcemu batchu, a zatiaľ nevidím dôvod, prečo to celé prepisovať do bashu alebo do iného programovacieho jazyka. (aj keď sa ten dôvod možno práve teraz našiel ) Každopádne, týmto si mi s mojim problémom aktuálne vôbec nepomohol :-/ ale aj tak si cením tvoju ochotu, a snahu .
P.S. bash sa dá rozbehať na widlách? To som nevedel.
batch snad nikdo nepoužívá, možná občas někdy něco na windows...
bash (a další shelly) jsou na linuxech a macích dost dobře podporované a většinou právě tak všude uvidíš .sh věci. Na windows se dají rozběhnout v různých programech jako MinGW, Cygwin, Git Bash, na Windows 10 je tam nově skvělý subsystém, ...
Opravdu nemá cenu se v batchi nějak učit, nebo něco vyvíjet. Majorita (s významem spíše "všichni") jeden na bash či obdobách.
Tam bys to napsal nějak takto (nezkoušeno):
Nevím přesně odkud se bere tvá proměnná, ale budu předpokládat, že je to proměnná z 1. parametru skriptu, tj. z ./skript parametr1
if [ "$1" == "ECHO is off." ]; then
echo "ECHO is off. VALID"
else
echo "ECHO is off. NOT VALID"
fi
Jeden z dôvodov prečo som batchi, je ten, že keď mi niečo treba, tak jednoducho vyberiem flashku, pripojim ku pc spustim skript, a ten sa už postará o všetko čo má. nepotrebujem vtedy doinštalovávať na každé pc, kde mi to treba žiadne runtimy, pluginy, knižnice, alebo iné programy (napr.: vyššie uvedené MinGW, Cygwin, Git Bash). Ide mi teda o jednoduchosť, efektívnosť, univerzálnosť a v podstate spoľahlivosť (myslím skôr tú, že som to napísal ja, a teda že to nieje žiadny blast).
Inak ak sa batch spustí Drag-n-Drop metódou, vyzerá to nejako takto:
C:\WINDOWS\system32\cmd.exe /c ""C:\Users\Msprg\Desktop\ECHO is off.
validator.bat" "C:\Users\Msprg\Desktop\File.bin""
edit://
Hej, a mimochdom ja som
snad nikdo
No, tak som si pomohol sám .
Takže, čo sa stalo? Ja som si vlastne iba neporozumel s batchom.
%1 je vlastne parameter batchu pri spustení. No, a pri spustení batchu
dvojklikom, je v %1 v podstate nič. Teda vlastne je tam textový reťazec s
nulovou dĺžkou.
Okrem toho, sa nám treba ešte trošku lepšie pozrieť na to, ako vlastne
funguje príkaz echo.
Echo je vlastne samostatný program, (tak isto, ako vlastne takmer všetky
batchové príkazy) ktorý iba na výstupe vráti jeho prvý parameter. (echo
ahoj! je spustenie programu "echo" s parametrom "ahoj!").
Ak ale program echo spustíme bez parametrov, tak proste iba vypíše aktuálny
stav toho, či je echo zapnuté. (ak je pred príkazom echo bez parametrov
príkaz
@echo off
vyhodí
ECHO is off.
)
Takže, kde bola chyba? Zase tam kde vždy, medzi stoličkou a klávesnicou.
Keď som spustil
echo %1
Tak som tým vždy vlastne iba spustil
echo
Vo výsledku som to teda nemohol porovnávať
Tu je teda funkčný, odskúšaný výsledok:
@echo off
setlocal enableextensions disabledelayedexpansion
if "%~1"=="" goto nothing
echo In %1 is something.
pause
exit
:nothing
echo In %1 is nothing.
pause
exit
Proč použít batch? Co třeba nějaké doplňující skripty po instalace vlastního produktu? Nějaký automatický úklid / build apod. Nevím k čemu bych to doplňoval dalším kusem SW abych rozběhal bash.
Z vlastní zkušenosti jsme měli prá PS / Batch skriptů po instalaci produktu, které provedli nějaké úkony na finální konfiguraci apod.
Zobrazeno 7 zpráv z 7.