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

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 ?

Link zu diesem Kommentar
  • 2 Wochen später...
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.

Link zu diesem Kommentar

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.

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...