![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Super-Moderator
![]() |
wiedermal batchjob
wiedermal brauch ich eure hilfe bei nem batchjob
![]() ich will eine textdatei welche diverse ip adressen enthält zeilenweise einlesen und weiterverarbeiten: die erste zeile einlesen (zb 192.168.0.1) und aktion A ausführen => wenn ip addresse online/erreichbar => ip addresse aus textfile löschen. ich will einen job mit psexec remote auf etlichen pc´s ausführen (rpc patch die zweite). da für einen sus server oder andere softwareverteiler kein geeigneter server da ist, soll es einfach mit nem batchjob erledigt werden. am wichtigsten wäre mir mal die funktion das die ip´s zeilenweise eingelesen wird und zb als variable verwendet werden kann. Code:
COPY C:\PATCH\PATCH.BAT \\%IP-ADRESSE%\C$\WINNT\TEMP PSEXEC \\%IP-ADRESSE% -u admin -p meinkennwort c:\WINNT\TEMP\PATCH.BAT DEL \\%IP-ADRESSE%\C$\WINNT\TEMP\PATCH.BAT |
![]() |
![]() |
![]() |
#2 |
Inventar
![]() Registriert seit: 24.09.2001
Beiträge: 7.335
|
![]() Code:
#!/usr/bin/perl use strict; open(IN, "ipliste.txt") or die "Lesefehler $!" while(<IN>) { chomp; # Das nachfolgende könnte man auch mit dem Perl-Eigenen "copy" machen my $cmd = "COPY C:\PATCH\PATCH.BAT \\$_\C$\WINNT\TEMP"; system($cmd); $cmd="PSEXEC \\$_ -u admin -p meinkennwort c:\WINNT\TEMP\PATCH.BAT" # Das nachfolgende könnte man auch mit dem Perl-Eigenen "remove" machen $cmd = "DEL \\$_\C$\WINNT\TEMP\PATCH.BAT" system($cmd); } close(IN); # Die Fehlerbehandlung mit Rückgabewert des System-Calls wird dem werten Leser als Übungsaufgabe überlassen. ;)
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org . |
![]() |
![]() |
![]() |
#3 |
Super-Moderator
![]() |
![]() @m3: danke, aber wenn möglich möchte ich es mit windows boardmitteln erledigen
![]() |
![]() |
![]() |
![]() |
#4 |
Inventar
![]() Registriert seit: 08.04.2001
Beiträge: 3.101
|
![]() Stehen in dem Textfile nur die IP Adressen zeilenweise?
|
![]() |
![]() |
![]() |
#5 |
Super-Moderator
![]() |
![]() ja
|
![]() |
![]() |
![]() |
#6 |
Veteran
![]() |
![]() die ip-adressen zeilenweise in eine variable (hier %%i) einlesen kannst in einem batchjob folgendermassen:
Code:
for /F %%i in (adresses.txt) do ( @echo %%i )
____________________________________
religion is a virus from outer space |
![]() |
![]() |
![]() |
#7 |
Inventar
![]() |
![]() @ spunz was is psexec? bzw wo finde ich die datei?
|
![]() |
![]() |
![]() |
#8 |
Senior Member
![]() Registriert seit: 02.11.2002
Beiträge: 179
|
![]() eine software mir der du programme übers netzt auf einem anderen computer ausführen kannst, und wahlweise vorher rüberkopieren. ein teil von den pstools, die sind absolut genial.
http://www.sysinternals.com -JL
____________________________________
It\'s not a bug... It\'s a feature! You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro) |
![]() |
![]() |
![]() |
#9 | |
Super-Moderator
![]() |
![]() Zitat:
![]() |
|
![]() |
![]() |
![]() |
#10 |
Veteran
![]() |
![]() also bei mir nicht!
bei mir wird jede adresse einzeln in die variable %%i gelesen und dann einzeln mit echo ausgegeben. in der datei adresses.txt steht jede adresse in einer eigenen zeile. habs allerdings nur mit win-xp probiert. welches os hast denn? btw. was meinst du mit alle auf einmal eingelesen? ich mein, sie werden natürlich alle eingelesen, aber bei jedem schleifen-durchlauf nur eine adresse. und dann kannst ja, statt die adresse mit echo auszugeben, damit machen was immer du willst.
____________________________________
religion is a virus from outer space |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|