Hilfe: Batchdatei |
Willkommen, Gast ( Anmelden | Registrierung )
Hilfe: Batchdatei |
Gast_pjan_* |
12.07.2003, 14:17
Beitrag
#1
|
Gäste |
Vielleicht kann mir einer von Euch helfen?
Eine (Text-)Datei besteht nur aus einer Zeile. Darin steht dateiname.exe Das Ende dieser Zeile ist immer .exe. Der Dateiname ändert sich ständig. Wie kann man diese Zeile auslesen und in einer Batchdatei über SET irgendwas=<Zeile in Datei> setzen? Ungefähr klar was ich meine? |
|
|
12.07.2003, 19:14
Beitrag
#2
|
|
Trojaner-Jäger Gruppe: Mitarbeiter Beiträge: 1.156 Mitglied seit: 15.04.2003 Wohnort: Düsseldorf Mitglieds-Nr.: 23 Betriebssystem: WinXP, MacOS 10.6, Vista |
Das ist IMHO nicht möglich. Dafür ist der Befehlssatz von Batchdateien doch zu beschränkt. Bist Du sicher das die Übergabe des Dateinamens wirklich über den Umweg einer Textdatei erfolgen muss?
wizard -------------------- wizardRESEARCH - Malware Research & Analysis since 1989
|
|
|
12.07.2003, 20:06
Beitrag
#3
|
|
Netzwerkrouter Gruppe: Freunde Beiträge: 1.792 Mitglied seit: 22.04.2003 Mitglieds-Nr.: 52 Betriebssystem: Windows |
Diese Zeile kannst du mit
QUELLTEXT FOR %%i IN (textdatei.txt) DO SET filename = %%i in der Batchdatei ganz einfach auslesen. docprantl |
|
|
Gast_pjan_* |
12.07.2003, 21:37
Beitrag
#4
|
Threadersteller Gäste |
Hier der Sinn und Zweck:
Ich möchte den Kommandozeilenscanner von McAfee per Batch aktualisieren. Über URL2FILE wird die Datei ftp://ftpeur.nai.com/pub/datfiles/german/update.ini geladen. Mit einem Tool wird aus der Section 'SuperDAT-IA32' der Key 'Filename' gelesen. Damit wird der Value 'sdat4276.exe' in eine besagte Datei (Readini.out) geschrieben. Nun weiß ich, welche Datei ich laden muß, nämlich: ftp://ftpeur.nai.com/pub/datfiles/german/sdat4276.exe Und eben den letzten Schritt, das Laden der ...sdat4276.exe, bekomm ich nicht hin, weil ich nicht an den Namen 'sdat4276.exe' herankomme, bzw. nicht weiß, wie ich diesen nun aus der Datei Readini.out lesen kann. Sofern es bei mir richtig ist, wird mir mit der Methode don docprantl immer der Dateiname, Readini.out, zurückgeliefert, nicht jedoch der Inhalt (sdat4276.exe). Falls es auch einfacher gehen sollte oder jemand weiß wie ich es hinbekomme ... das muß doch machbar sein?! |
|
|
Gast_pjan_* |
12.07.2003, 21:50
Beitrag
#5
|
Threadersteller Gäste |
Keine Ahnung was das bedeutet, aber mit
FOR /F "TOKENS=1" %%I IN (Readini.out) DO SET SDATFILE=%%I geht es! |
|
|
13.07.2003, 01:22
Beitrag
#6
|
|
War schon oft hier Gruppe: Mitglieder Beiträge: 125 Mitglied seit: 15.04.2003 Mitglieds-Nr.: 28 Betriebssystem: W2000,WXP,Free BSD Virenscanner: AVast Firewall: Smoothwall |
Hallo,
ZITAT FOR /F ["Optionen"] %variable IN (Dateiensatz) DO Befehl [Parameter] Der Dateiensatz besteht aus einem oder mehreren Dateinamen. Jede Datei wird geöffnet, gelesen und bearbeitet, dann wird mit der nächsten Datei des Satzes fortgefahren. Die Bearbeitung einer Datei erfolgt zeilenweise, jede einzelne Textzeile wird ausgewertet und in die entsprechenden Token (keinen oder mehrere) zerlegt. Die Befehle in der FOR-Schleife werden dann mit den Variablenwerten (d.h. den gefunden Zeichenketten bzw. Token) aufgerufen. Standardmäßig liefert /F den ersten, durch ein Leerzeichen getrennten Token von jeder Zeile in jeder Datei. Leerzeilen werden übersprungen. Das standardmäßige Verhalten bei der Analyse kann wahlweise durch den Parameter "Optionen" überschrieben werden. Das ist eine Zeichenkette in Anführungszeichen, welche eines oder mehrere Schlüssel- wörter enthält, um verschiedene Parameter für die Analyse anzugeben. Diese Schlüsselwörter sind: tokens=x,y,m-n - Gibt an, welche Token von jeder Zeile an die FOR-Schleife weitergegeben werden. Das führt dazu, dass zusätzliche Variablen erzeugt werden. Mit der Form m-n wird dabei ein Bereich vom m-ten bis zum n-ten Token angegeben. Wenn das letzte Zeichen ein Sternchen ist, wird eine zusätzliche Variable deklariert, die den verbleibenden Text dieser Zeile enthält. noch mehr Info gibt es mit for /? zumindest unter W2K bis denne Muehle -------------------- Fehler die man selber macht,macht man selten zweimal.
|
|
|
Vereinfachte Darstellung | Aktuelles Datum: 30.05.2024, 13:05 |