Fragment 10 Geschrieben 25. Januar 2008 Melden Teilen Geschrieben 25. Januar 2008 Hallo zusammen, ich bin Scripting-Neuling und würde gerne aus einer Datei abcde.xyz, die einfacher unverschlüsselter Plain-Text ist eine Zeile auslesen und in einer Datei fghijk.uvw wieder einfügen. Am liebsten wären mir zwei Scripte. Eines, das die Zeile n ausliest und in eine TXT schreibt und dann das zweite Script, den Inhalt dieser TXT in eine bestimmte Zeile m einfügt. Noch eine Zusatzinformation, um das Ganze zu veranschaulichen. Die Datei(en) sieht(sehen) folgendermaßen aus: #Kommentar1 #Kommentar2 #Kommentar3 Variable1=Wert1 Variable2=Wert2 Variable3=Wert3 . . . VariableN=WertN Ich möchte im Endeffekt den WertN einer VariablenN in eine andere Datei übertragen. Also den WertN in der anderen Datei überschreiben. Danke schonmal für Eure Hilfe. Gruß Fragment Edit: Die Werte sind Strings. Zitieren Link zu diesem Kommentar
Fragment 10 Geschrieben 28. Januar 2008 Autor Melden Teilen Geschrieben 28. Januar 2008 Hi, ist es mit VBscript nicht oder nur schwer realisierbar? Wäre wirklich dankbar für eine Herangehensweise. Das Script soll manuell im Verzeichnis der Quelltextdatei ausgeführt werden und der Einfachheit halber auch dort die neue Textdatei erstellen. Danke & Grüße Fragment Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 28. Januar 2008 Melden Teilen Geschrieben 28. Januar 2008 Um es richtig zu verstehen: Du willst dem Script dann als Parameter z.B. den Variablennamen mitgeben und den entspr. Wert zurückerhalten? Und den dann in einer anderen der entspr. Variable geben? Und wenn es in der 2.Datei die Variable nicht gibt, auch gleich erzeugen? Zitieren Link zu diesem Kommentar
Fragment 10 Geschrieben 29. Januar 2008 Autor Melden Teilen Geschrieben 29. Januar 2008 Gar nicht mal so viele Anforderungen. Rein von der Logik soll es so ablaufen: Lies Zeile xy aus Datei C:\Programme\Werte\Werte.txt komplett aus (wobei Zeile xy im Script als Konstante einfach abzuändern ist). Hänge den Inhalt der gelesenen Zeile ans Ende von \\Netzwerkserver\Liste\Liste.txt an Mehr soll es nicht tun. Jetzt kann ich das Script von vielen Clientrechnern aus starten und bekomme die Liste.txt mit den entsprechenden Zeilen gefüllt. Das soll halt einfach angehängt werden... Also zum Verständnis. Es ist genug, wenn er einfach nur eine Zeile ausliest und in die andere Datei kopiert. Diese Variable/Wert Unterscheidung ist gar nicht notwendig und sollte nur die Struktur der Quelldateien verdeutlichen. Grüße Fragment Zitieren Link zu diesem Kommentar
winDOES 10 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 2008 Also für solche Sachen schau dir mal Autoit an. Super Dokumentiert und mit wenigen Zeiilen sollte dein Skript fertig sein. Gruß winDoes Zitieren Link zu diesem Kommentar
Fragment 10 Geschrieben 29. Januar 2008 Autor Melden Teilen Geschrieben 29. Januar 2008 Würde es gerne ohne Fremdsoftware machen, weil es sich um Firmenrechner handelt, auf die ich nicht so ohne weiteres Sachen installieren darf/kann. Das müsste doch mit nem .vbs auch total aufwandslos gehen. Ist bestimmt nicht viel Code. Zitieren Link zu diesem Kommentar
winDOES 10 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 2008 Von vbs hab ich leider wenig Plan. Das gute an Autoit: Das Skript wird kompiliert und läuft dann ohne best. Framework. Es ist also nicht nötig einen "Interpreter" zu installieren. (Gibt deshalb auch keinen. Gruß winDOES Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 2008 Da würde ich sagen, reicht eine CMD-Zeile bzw. ne Minibatch: @echo off findstr "VariableN" datei1.txt >>datei2.txt ...fügt die gefundenen Zeile aus Datei1 ans Ende von Datei2 an. Zitieren Link zu diesem Kommentar
Fragment 10 Geschrieben 29. Januar 2008 Autor Melden Teilen Geschrieben 29. Januar 2008 Ahh das ist super, wenn das so einfach funktioniert. Jetzt muss ich doch nochmal meine Anforderungen ändern, weil ich herausgefunden habe, dass es nicht ausreicht die Variable ans Ende der neuen Datei zu schreiben. Er liest die Erste hinterlegte ein und in den Zieldateien ist die Variable schon mit einem falschen Wert in Zeile 13... Also nochmal neu: In der Quelldatei, die auf den Clientrechnern liegen steht in Zeile 13 Username=User123 Die Zieldateien sind Templatedateien auch auf dem Clientrechner, in dem auch in Zeile 13 folgendes steht Username=Administrator Im Prinzip soll er den Wert des Usernames also z.b. "User123" , die er aus der Quelldatei ausliest in die Zieldatei statt Administrator reinschreiben. Wenns einfacher zu coden ist, kann er ja auch die gesamte Zeile 13 überschreiben, mehr als der Username steht da nicht. Die Dateien kopieren kann ich nicht, weil die Zieldateien auf den Clientrechnern bis auf den Username sehr unterschiedlich sind. Ob man dieser .bat einfach sagen könnte, dass sie Zeile 13 mit Zeile 13 überschreiben soll? Das wäre am Besten. Vielen Dank nochmals! Fragment Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 2008 Ist es wichtig, dass das auch wieder in Zeile 13 steht? Oder ginge auch, die alte Zeile zu löschen und dann die neue am Ende anfügen? findstr /V "VariableN" datei2.txt >tempdatei.txt findstr "VariableN" datei1.txt >>tempdatei.txt copy /Y tempdatei.txt datei2.txt Das /V bei findstr bedeutet, er soll alle Zeilen ausgeben, die den Suchstring NICHT enthalten. Zitieren Link zu diesem Kommentar
Fragment 10 Geschrieben 29. Januar 2008 Autor Melden Teilen Geschrieben 29. Januar 2008 Das ginge auch, so wie du es beschreibst! Habe ich gerade manuell ausprobiert. Super probiere ich gleich aus. DANKE! 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.