derbayer 10 Geschrieben 17. Dezember 2010 Melden Teilen Geschrieben 17. Dezember 2010 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 ? Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 17. Dezember 2010 Melden Teilen Geschrieben 17. Dezember 2010 Hallo, du musst mir Errorlevel das Ergenbnis von findstr abfangen Findstr - Search for strings Mit "Start" kannst du weitere Batches starten. Siehe "start /?" Machbar sind deine Anforderungen mit Batch-Programmierung schon noch. Spass machts keinen. cu blub Zitieren Link zu diesem Kommentar
derbayer 10 Geschrieben 29. Dezember 2010 Autor Melden Teilen Geschrieben 29. Dezember 2010 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 Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 2. Januar 2011 Melden Teilen Geschrieben 2. Januar 2011 Ich glaube, mit dieser Anforderung (Zeilen nach bestimmten Suchkriterien löschen) ist die Batchprogrammierung überfordert. blub Zitieren Link zu diesem Kommentar
MrCocktail 194 Geschrieben 2. Januar 2011 Melden Teilen Geschrieben 2. Januar 2011 Blub, nein sind sie nicht. Nur spass macht es keinen mehr. Und vielleicht sollte der TO mal darstellen, was er genau moechte, denn so habe ich keine Idee, welcher weg hier sinn macht. Ich wuerde es aber auch lieber anders loesen. Gruss J Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 2. Januar 2011 Melden Teilen Geschrieben 2. Januar 2011 MrCocktail, dann lass ich dir den Vortritt :) Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 2. Januar 2011 Melden Teilen Geschrieben 2. Januar 2011 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. Zitieren Link zu diesem Kommentar
MrCocktail 194 Geschrieben 2. Januar 2011 Melden Teilen Geschrieben 2. Januar 2011 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. Zitieren Link zu diesem Kommentar
carlito 10 Geschrieben 2. Januar 2011 Melden Teilen Geschrieben 2. Januar 2011 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.