Jump to content

txt per bat auswerten


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo Zusammen,

 

ich versuche zur Zeit eine BAT zu schreiben die eine txt auswerte ob der PC Name vorhanden ist wenn ja soll er eine weiter bat aufrufen wenn nicht ende

 

nur leider komme ich mit dem FINDSTR befehl nicht so ganz zu recht

bzw. wo ich eine IF anfrage machen müsste

 

jemand eine Idee ??

 

@ECHO OFF

FINDSTR /i /x %COMPUTERNAME% c:\tmp\text.txt

 

 

eine weiter Anforderung dafür wäre

wo ich aber nicht mal eine Idee habe

 

a.txt / b.txt / c.txt

a.bat / b.bat / c.bat

 

User A ist in txt a und c uns soll daher bat a und c ausführen

User B ist nur a daher nur bat a

 

 

ist das überhaupt per BAT zu lösen oder nur per VBS ?

  • 2 Wochen später...
Geschrieben

hi,

das mit dem errorlevel ist eine super tipp gewesen

 

FINDSTR /I /X %COMPUTERNAME% "update.txt"
IF errorlevel == 0 GOTO ok

 

wie kann ich den Computername jetzt herrauslöschen am besten so das die ganze zeile gelöscht wird ?

alle Update Namen sind pro zeile vorhanden

Geschrieben
hi,

.....wie kann ich den Computername jetzt herrauslöschen am besten so das die ganze zeile gelöscht wird ?....

 

Mit find und findstr ist das so einfach nicht möglich.

 

Man müsste die Datei in eine for /f-Schleife zeilenweise lesen, die aktuelle Zeile untersuchen und gleich wieder in eine neue Datei schreiben unter Auslassen der mit dem Suchergebnis, prinzipiell machbar, bei grossen und vielen Dateien sehr langsam per Batch.

 

Ich habe da ganz hinten im Gedächnissnebel den Begriff Parser gefunden, es ist lange her, ich habe es selbst nicht gemacht, nur gelesen.

Geschrieben

Ich schmeisse noch mal sed in den Raum, den meisten nur aus der Unix Welt bekannt, gibt es dieses auch fuer Dos, einfach in den Path kopieren und gut ist.

 

sed '/HOSTNAME/d' Eingabedatei >Ausgabedatei

 

loescht alle Zeilen, in der HOSTNAME vorkommt, sollte doch schon die Loesung sein.

Geschrieben

Ich empfehle bei solchen Anforderungen sich mit der PowerShell zu beschäftigen. Neulich gab es hier einen ähnlichen Fall, bei dem Routen anhand eines wechselndes Gateways gesetzt werden sollten. Zuerst habe ich mir das Auslesen des Gateways in klassischer Batchprogrammierung überlegt. Das so dann so aus:

for /f "delims=" %a in ('ipconfig ^| findstr [0-9].\.') do @for /f "tokens=1,2 delims=:" %i in ('@echo %a ^| findstr "Standardgateway"') do @for /f %o in ('@echo %j') do @echo %o

 

Mit PowerShell so:

(gwmi win32_networkadapterconfiguration|?{$_.index -eq 14}|?{$_.defaultipgateway}).defaultipgateway

 

Will sagen: mit Batch nicht unmöglich, aber mit PowerShell einfacher. So wird es auch in diesem Fall sein.

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...