Forum » Programiranje » Ukaz findstr
Ukaz findstr
![](https://static.slo-tech.com/stili/avatar_gray.gif)
rimci ::
Imam sledečo tekstovno datoteko:
2019-02-10 red
2019-02-10 red wine
2019-02-11 red
V njej želim poiskati vrstice ki vsebujejo "aktualni datum" in "red"
Moja koda je sledeča:
@echo off
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set year=%%c
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set mon=%%b
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set day=%%a
rem for /f "tokens=1" %%a in ('date/t') do set dn=%%a
rem ta ukaz doda se dan
set y2=%year:~0,4%
set jintian=%y2%-%mon%-%day%%dn%
findstr "%jintian%" | findstr "red" test.txt
Rezultat pa je:
2019-02-10 red
2019-02-10 red wine
2019-02-11 red
Rezultat bi moral biti: 2019-02-11 red
Kaj delam narobe. Prosim za pomoč
2019-02-10 red
2019-02-10 red wine
2019-02-11 red
V njej želim poiskati vrstice ki vsebujejo "aktualni datum" in "red"
Moja koda je sledeča:
@echo off
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set year=%%c
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set mon=%%b
for /f "tokens=2-4 delims=. " %%a in ('date /t') do set day=%%a
rem for /f "tokens=1" %%a in ('date/t') do set dn=%%a
rem ta ukaz doda se dan
set y2=%year:~0,4%
set jintian=%y2%-%mon%-%day%%dn%
findstr "%jintian%" | findstr "red" test.txt
Rezultat pa je:
2019-02-10 red
2019-02-10 red wine
2019-02-11 red
Rezultat bi moral biti: 2019-02-11 red
Kaj delam narobe. Prosim za pomoč
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mallard ::
Zadnji ukaz je narobe. Ti rabiš
Najprej v datoteki poišče vse vrstice s pravim datumom, potem pa ta output pošlje v naslednji ukaz, ki poišče "red".
findstr "%jintian%" test.txt | findstr "red"
Najprej v datoteki poišče vse vrstice s pravim datumom, potem pa ta output pošlje v naslednji ukaz, ki poišče "red".
![](https://static.slo-tech.com/stili/avatar_gray.gif)
rimci ::
Najlepša hvala. Še en problem. Hočem da mi poišče samo "red" zdaj mi poišče tudi vse ostalo če je kaj napisano za "red" (npr. red wine...). za to bi moral biti ukaz findstr /C:"red", ki pa ne deluje tako
![](https://static.slo-tech.com/stili/avatar_gray.gif)
mallard ::
Potem pa mogoče kar zlepi skupaj string:
Samo to je bolj hackiš... /X pomeni, da išče točno tako vrstico. Ne bi rajši kakšne bolj resne scripting zadeve uporabil? :)
findstr /C:"%jintian% red" /X test.txt
Samo to je bolj hackiš... /X pomeni, da išče točno tako vrstico. Ne bi rajši kakšne bolj resne scripting zadeve uporabil? :)
![](https://static.slo-tech.com/stili/avatar_gray.gif)
rimci ::
Ja vidim da je res to bolj hackiš. Problem je če ni točno tak zapis "%jintian% red". Kaj če so vmes "prazni znaki" ali kaki druge črke. Potem ta zadeva odpade. Nisem neki expert za programiranje. A lahko pomagaš z kako "resno scripting zadevo" oziroma scripto?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | batch fajl iz txt (strani: 1 2 )Oddelek: Programiranje | 9890 (8551) | b3D_950 |
» | iz dhcp v fiksni ipOddelek: Omrežja in internet | 1959 (1667) | Good Guy |
» | cmd batch rename datoteke v datum,časOddelek: Programiranje | 1683 (1501) | Good Guy |
» | [bat datoteke] Trenutni datum in uraOddelek: Programiranje | 2521 (2278) | darkolord |
» | včerajšni datumOddelek: Programiranje | 1170 (1048) | ql000 |