Stanisław Rzewuski

Stanisław Rzewuski Nothing moves
without Mechanical
Engineering

Temat: migracja skryptu AWK z shella do DOS-a

spłodziłem kawałek kodu w AWK na życzenie klienta.


GPSID=$(awk '/GPSID/ {print $3}' gora.RTK )

awk -v variable=${GPSID} 'BEGIN {printf "Numer seryjny : " variable,$1}' >>out.txt


I teraz muszę przeportować to do środowiska windowsowego :-( klient końcowy korzystający ze skryptu nie będzie mieć linuks-a... niestety.
Nie wiem jak output z konsoli zapisać pod zmienną w DOS-ie i to jest dla mnie największy problem :-( Może ktoś z was cos takiego dawno temu pisał i wie?Stanisław Rzewuski edytował(a) ten post dnia 10.02.09 o godzinie 15:43
Stanisław P.

Stanisław P. Software designer

Temat: migracja skryptu AWK z shella do DOS-a

Zaraz zaraz... to dos, czy windows (i który)? Bo to napradę duża różnica.

Zakładając, że to w2k/XP lub wyższy:
Sam awk można zainstalować więc jest ok. A co do zmiennej, to nie wiem... komenda 'set' ma trochę magicznych opcji - możesz przeszukać dokumentację do niej.

Jeśli środowisko win9x, albo rzeczywiście dos, to... chyba lepiej się pociąć czerstwą bułką :) Jak musiałem zrobić coś podobnego i musiał powstać .bat odpowiedni, to wyszło na to łatwiej napisać w normalnym języku generator całego .bata z podstawionymi wartościami.

Ew. w każdym win. możesz napisać to w VBScripcie.Stanisław Pitucha edytował(a) ten post dnia 10.02.09 o godzinie 15:56
Stanisław Rzewuski

Stanisław Rzewuski Nothing moves
without Mechanical
Engineering

Temat: migracja skryptu AWK z shella do DOS-a

No DOS w sensie WINXP linia poleceń, czyli nie taki wielki archaik.

SET ma kilka magicznych przełączników, ale po godzinie googlania doszedłem do wniosku, że kręcę się w kółko :-(
Stanisław P.

Stanisław P. Software designer

Temat: migracja skryptu AWK z shella do DOS-a

Z innych porad to tylko:
- zapytaj na stackoverflow.com - tam na pewno ktoś z windowsowców wiedział - jeśli rozbijesz to na kilka konkretnych pytań, to nie powinno być problemu ze znalezieniem odpowiedzi
- jeśli znasz jakiś kompilowany język - c / c#.net / cokolwiek, to po prostu napisz w tym zamiast .bat'a :)
Piotr S.

Piotr S. Senior Solution
Architect,
LiveTrainings

Temat: migracja skryptu AWK z shella do DOS-a

Stanisław Rzewuski:
No DOS w sensie WINXP linia poleceń, czyli nie taki wielki archaik.

SET ma kilka magicznych przełączników, ale po godzinie googlania doszedłem do wniosku, że kręcę się w kółko :-(
A ja na twoim miejscu poszedłbym inną drogą.
Skoro klient się tak upiera przy Win;) to twój kawałek kodu przeniósłbym do Perl`a lub Pythona i zainstalował ich windowsowe wersje. Wiem, że zawłaszcza Perl jest "popularny", pewnie ze względu na ilość dodatkowych bibliotek, wśród adminów od Windowsa (jak na coś co nie pochodzi ze stajni MS);)

Pozdrawiam,
Piotr

Temat: migracja skryptu AWK z shella do DOS-a

Nie wiem jak output z konsoli zapisać pod zmienną w DOS-ie i to jest dla mnie największy problem :-( Może ktoś z was cos takiego dawno temu pisał i wie?


Wygląda na to, że w windowsie robi się takie rzeczy dość oryginalnie czyli za pomocą pętli komendy FOR :). Poniżej aktualny czas przypisywany do zmiennej A.

FOR /F "tokens=*" %i IN ('time /T') DO set A=%i

No ale niby da się.
Stanisław Rzewuski

Stanisław Rzewuski Nothing moves
without Mechanical
Engineering

Temat: migracja skryptu AWK z shella do DOS-a

dzięki za podpowiedź niestety kod bat-a



cls
@echo off

FOR /F "tokens=*" %i IN ('time /T') DO set VARIABLE=%i



wypluwa


i was unexpected at this time.



ale jak się pętle wykona w lini poleceń:

to pokaże


C:\Documents and Settings\srzewuski>FOR /F "tokens=*" %i IN ('time /T') DO set VARIABLE=%i

C:\Documents and Settings\srzewuski>set VARIABLE=16:38


o co kaman?? chyba pora iść na stackoverflow.com.
Stanisław Rzewuski

Stanisław Rzewuski Nothing moves
without Mechanical
Engineering

Temat: migracja skryptu AWK z shella do DOS-a

ej stack overflow.com to było to
goście są super szybcy i rewelacyjni !!!

http://stackoverflow.com/questions/537404/assign-win-x...
finalny kod wygląda tak:

cls
@echo off
del out.txt

for /f "tokens=*" %%a in ('awk "/GPSID/ {print $3}" gora.RTK ') do set var=%%a
awk "BEGIN {printf \"GPSID : \" }" >out.txt
echo %var% >>out.txt



to teraz będę mógł se raport napisać :-)

Następna dyskusja:

migracja domeny z Windows 2...




Wyślij zaproszenie do