WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 12.09.2003, 11:46   #1
spunz
Super-Moderator
 
Registriert seit: 22.03.2000
Beiträge: 9.666


spunz eine Nachricht über ICQ schicken
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
spunz ist offline   Mit Zitat antworten
Alt 12.09.2003, 11:53   #2
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

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 .
_m3 ist offline   Mit Zitat antworten
Alt 12.09.2003, 15:04   #3
spunz
Super-Moderator
 
Registriert seit: 22.03.2000
Beiträge: 9.666


spunz eine Nachricht über ICQ schicken
Standard

@m3: danke, aber wenn möglich möchte ich es mit windows boardmitteln erledigen
spunz ist offline   Mit Zitat antworten
Alt 12.09.2003, 15:59   #4
flinx
Inventar
 
Registriert seit: 08.04.2001
Beiträge: 3.101


Standard

Stehen in dem Textfile nur die IP Adressen zeilenweise?
flinx ist offline   Mit Zitat antworten
Alt 12.09.2003, 16:30   #5
spunz
Super-Moderator
 
Registriert seit: 22.03.2000
Beiträge: 9.666


spunz eine Nachricht über ICQ schicken
Standard

ja
spunz ist offline   Mit Zitat antworten
Alt 12.09.2003, 16:40   #6
helios
Veteran
 
Registriert seit: 21.06.2001
Beiträge: 343


helios eine Nachricht über ICQ schicken
Standard

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
helios ist offline   Mit Zitat antworten
Alt 14.09.2003, 22:30   #7
Potassium
Inventar
 
Registriert seit: 06.03.2003
Alter: 37
Beiträge: 3.954

Mein Computer

Standard

@ spunz was is psexec? bzw wo finde ich die datei?
Potassium ist offline   Mit Zitat antworten
Alt 15.09.2003, 00:22   #8
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

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)
JackLemon ist offline   Mit Zitat antworten
Alt 15.09.2003, 07:45   #9
spunz
Super-Moderator
 
Registriert seit: 22.03.2000
Beiträge: 9.666


spunz eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von helios
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
)
so werden leider alle zeilen auf einmal eingelesen
spunz ist offline   Mit Zitat antworten
Alt 15.09.2003, 08:47   #10
helios
Veteran
 
Registriert seit: 21.06.2001
Beiträge: 343


helios eine Nachricht über ICQ schicken
Standard

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
helios ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:47 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag