Jump to content

Textzeile mit AutoIT oder Batch ändern.


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

Empfohlene Beiträge

Hallo @lefg,

 

Nochmals vielen Dank, ich habe gerade deinen Code ausprobiert und sehe das der Ansatz richtig ist.

Nur wie ich das ganze jetzt sehe macht dein Code folgendes:

 

aus deine control.txt (denke bei mir test.cfg) werden die Daten ausgelesen und in eine Variablen gespeichert.

 

#wcontrol
server=Mxx01W2K1072,172.10.10.72
client id=123fg0j
mac=00040012138b

 

danach generierst du einen neue Textdatei (ccontrol.txt) wo diese gespeicherten Variablen wieder reingeschrieben werden.

 

#newcontrol
server=Mxx01W2K1072,172.10.10.72
client id=123fg0j
mac=00040012138b

 

vom Grundprinzip genau das was ich suche, nur sollte die control.txt (test.cfg) unberührt bleiben. Und nur die Textzeile server= ............... geändert werden oder sogar nur überschrieben werden.

 

Das heißt die control.txt (test.cfg) ist das Endprodukt nach dem ändern der Textzeile

server=Mxx01W2K1072,172.10.10.72

 

Ich versuche es nochmal zu erklären:

 

bestehende Datei (test.cfg):

#wcontrol
server=Mxx01W2K1072,172.10.10.72
client id=123fg0j
mac=00040012138b

 

danach würde ich eine neue Textdatei anlegen (bsp: servername.txt) mit folgenden Inhalt

[b]server=Axx01W2K1472,172.10.14.72[/b]

 

und am Ende müsste diese Datei (test.cfg) wieder rauskommen:

#wcontrol
[b]server=Axx01W2K1472,172.10.14.72[/b]
client id=123fg0j
mac=00040012138b

 

Bitte verzeih wenn ich es nochmal erkläre aber diese Datei ist sehr wichtig was die Client Server Kommunikation in der Softwareverteilung angeht. Wenn diese Datei nicht passt verliere ich den Client in der Softwareverteilung.

 

Ist das ohne großen Aufwand möglich? Will da nicht das du deine ganze Zeit investierst ansonsten bin ich dir noch einen Kaffee schuldig. :-)

 

Danke nochmal und Gruß

 

hellemon

Link zu diesem Kommentar

Hallo liebe Leut,

 

nochmals vielen Dank für die Zahlreichen Tipps aber ich habe es Endlich gelöst.

 

Muss schon sagen, es ist echt schwierigt etwas zu realisieren wenn man kaum Programmieren kann. Aber man lernt nie aus. :-)

 

@lefg hat mich auf den richtigen Weg gebracht. Er hatte den richtigen Ansatz nur habe ich es am Anfang nicht verstanden was er wollte.

 

Hier meine Lösung zum Problem. Funktioniert einwandfrei mit AutoIT.

 

Was wird am Ende damit erreicht - Es wird Zeile für Zeile aus der bestehenden Datei ausgelesen und in eine neue Datei geschrieben. Danach kommt eine While Schleife die bei einem Bestimmten Wort (Server=) eine bestimmte Aktion ausführt - in meinen Beispiel den neuen Servername aus der einen Textdatei ausliest und in die neue Datei einfügt. Danach wir die Orginal Datei gelöscht und die neu erstellte Datei umbennant. Und somit habe ich das erreicht was ich haben wollte. Vielen dank nochmal.....

 

; Neuen Server holen und in Variable $newserver speichern
$fileserver = FileOpen("server.txt",0)
; Überprüft ob die server.txt geöffnet werden kann
If $fileserver = -1 Then
   MsgBox(0, "Fehler", "Kann server.txt nicht öffnen.")
   Exit
EndIf
$newserver = FileReadLine($fileserver)
FileClose($fileserver)


$file = FileOpen("wcontrol.cfg", 0)
; Überprüft ob die wcontrol.cfg geöffnet werden kann
If $file = -1 Then
   MsgBox(0, "Fehler", "Kann wcontrol.cfg nicht öffnen.")
   Exit
EndIf

; Legt neue Datei wcontrol.new an
$filenew = fileOpen("wcontrol.new", 2)
; Überprüft ob die wcontrol.new geöffnet werden kann
If $filenew = -1 Then
   MsgBox(0, "Fehler", "Kann wcontrol.new nicht öffnen.")
   Exit
EndIf

; Neue Datei wcontrol.new schreiben
While 1
   $line = FileReadLine($file)
   If @error = -1 Then ExitLoop
If StringLeft($line,6)="Server" Then
	$line="Server=" & $newserver
EndIf
$result=FileWriteLine($filenew, $line)	
if $result=0 then
	MsgBox(0, "Fehler", "Kann wcontrol.new nicht schreiben.")
	FileClose($file)
	FileClose($filenew)
	FileDelete("wcontrol.new")
	Exit
EndIf
Wend

FileClose($file)
FileClose($filenew)

; Der Schreibschutz von der datei wcontrol.cfg wird empfernt
FileSetAttrib("wcontrol.cfg", "-R", 0)
If @error Then 
MsgBox(4096,"Fehler", "Schreibschutz von der wcontrol.cfg kann nicht empfernen werden.")
Exit
EndIf

FileMove("wcontrol.new", "wcontrol.cfg",1)

 

Das ganze in eine EXE Datei Compilieren - Fertig

 

Jetzt kann man das ganze via Batchjob speichern wohin man will und kann mehrere Clients auf einmal bearbeiten. Und muss nur noch die Textdatei ab ändern.

 

Gruß und bis zum nächsten mal

 

Helmut

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...