Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Windows CMD for i findstr

krgisz 28 Wrz 2012 12:26 2436 5
  • #1 28 Wrz 2012 12:26
    krgisz
    Poziom 9  

    Witam,
    czy ktoś może mi pomóc z napisaniem bat'a, który sprawdzi czy w pliku tekstowym jest np słowo "windows" i jeżeli jest to przypisze do zmiennej X=1, jeżeli nie będzie to przypisze do zmiennej X=0

    Probowałem tak:
    findstr "windows" c:\temp\test.txt > X
    i tak
    for %x in (findstr windows c:\temp\text.txt) do set x=%x

    i nic nie chce mi działać...

    0 5
  • #2 28 Wrz 2012 16:55
    MArSTER_1
    Poziom 18  

    Aby sprawdzić czy działa zrobiłem plik tekstowy z zawartością jak niżej:

    Windows jest zły
    a linuks jest dobry...

    Nazwałem go plik_testowy.txt

    Następnie w Notatnku napisałem tekst i zapisując zmieniłem rozszerzenie z .txt na .bat.

    Powstał plik wsadowy, który nazywa się szukacz.bat i ma postaćjak niżej:

    echo off
    cls
    echo ustawienie wartości zmiennej x na zero zero
    set /a x=0
    echo szukam slowa Windows w pliku plik_tekstowy.txt
    findstr /c:"Windows" plik_testowy.txt && set /a x=1
    echo koniec szukania
    echo Wartość X= %x%


    Gdy w pliku plik_testowy.txt znajdzie się string Windows zmienna x jest ustawiana na 1. Ten sposób ma tę wadę, że jeśli słowem będzie Windowsa to też to odczyta i ustawi zmienną.Wywołanie pliku wsadowego to oczywiście po prostu wpisanie jego nazwy w CMD ale musisz być w katalogu w którym jest plik.

    0
  • #3 30 Wrz 2012 16:30
    krgisz
    Poziom 9  

    super - dzięki ale mam następny problem:
    chciałbym teraz wysłać maila jeżeli w pliku zostanie odnaleziony ciąg... mój problem polega na tym że jeżeli mój bat dochodzi do lini telnet to zatrzymuje się i dupa nie idzie dalej - pewnie dlatego że to osobny program, co musze zrobić żeby telnet przyjął moje polecenia z bat'a i polecenia z bat poszły dalej?

    tak próbuje:

    ...

    if %ZMIENNA% == 1 goto :SENDMAIL

    :SENDMAIL
    telnet host 25
    helo test
    auth login
    ...
    .
    quit

    echo Wyslano maila
    cd bat...

    0
  • #4 02 Paź 2012 14:02
    krgisz
    Poziom 9  

    cisza więc chyba nie da się?

    0
  • #5 02 Paź 2012 18:13
    MArSTER_1
    Poziom 18  

    Wymagane jest minimum własnego zaangażowania....

    0
  • #6 03 Paź 2012 09:14
    krgisz
    Poziom 9  

    Kombinowałem jak to zrobić poprzez 'start telnet' ale za pomoca tego nie moge przekazac polecen telnetowych w osobnym oknie telnetu bo 'start telnet' tylko wywoła telneta i przechodzi dalej w bacie...
    nie wiem czy sie da w ogóle w podprogramie wykonywać polecenia podprogramu (mówie tu o telnecie), stąd pytam bardziej doświadczonych...

    0
  Szukaj w 5mln produktów