Bat test suchen und dahinter hinzufügen
Hallo Zusammen,
in vielen Beiträgen habt ihr mir schon sehr oft weitergeholfen. Leider komm ich mit dem aktuellen Problem nicht weiter bzw. habe Probleme den richtigen Beitrag zu finden der genau mein Problem beschreibt.
Daher hier meine erste Frage: Ich habe eine "abc.txt" file und möchte in diesem hinter dem Text "WSid=" den aktuellen User Name schreiben.
Bislang suche ich immer nur mit "for /f "tokens=1-2 delims= " %%i in ('type abc.txt ^|find "WSid="') do set "WSwert=%%j"" in txt files und schreibe den Inhalt in eine variabel zb. j in dem fall.
Habe mit Echo und co versucht anstelle zu find zu arbeiten aber da fehlt mir das notwendige wissen.
Es wäre super wenn mir jemand weiterhelfen könnte
Vielen dank Hannes
in vielen Beiträgen habt ihr mir schon sehr oft weitergeholfen. Leider komm ich mit dem aktuellen Problem nicht weiter bzw. habe Probleme den richtigen Beitrag zu finden der genau mein Problem beschreibt.
Daher hier meine erste Frage: Ich habe eine "abc.txt" file und möchte in diesem hinter dem Text "WSid=" den aktuellen User Name schreiben.
Bislang suche ich immer nur mit "for /f "tokens=1-2 delims= " %%i in ('type abc.txt ^|find "WSid="') do set "WSwert=%%j"" in txt files und schreibe den Inhalt in eine variabel zb. j in dem fall.
Habe mit Echo und co versucht anstelle zu find zu arbeiten aber da fehlt mir das notwendige wissen.
Es wäre super wenn mir jemand weiterhelfen könnte
Vielen dank Hannes
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 344112
Url: https://administrator.de/contentid/344112
Ausgedruckt am: 24.11.2024 um 03:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo Hannes
Du kannst eine Datei neu schreiben oder Text an eine bestehende Datei anhängen. Du kannst aber nicht irgend etwas mittem im Text hizufügen. Das bedeutet, du musst deine Datei zeilenweise auslesen und in eine andere Datei schreiben. Bevor du eine Zeile schreibst, musst du prüfen ob es die Zeile ist, die du ändern willst.
Ungefähr so (ungetestet in den Browser geschrieben):
Grüße
rubberman
/EDIT
Beibehaltung von Leerzeilen hinzugefügt.
Du kannst eine Datei neu schreiben oder Text an eine bestehende Datei anhängen. Du kannst aber nicht irgend etwas mittem im Text hizufügen. Das bedeutet, du musst deine Datei zeilenweise auslesen und in eine andere Datei schreiben. Bevor du eine Zeile schreibst, musst du prüfen ob es die Zeile ist, die du ändern willst.
Ungefähr so (ungetestet in den Browser geschrieben):
@echo off &setlocal
set "file=abc.txt"
set "key=WSid"
set "val=%username%"
setlocal EnableDelayedExpansion
<"!file!" >"!file!.~tmp" (
for /f %%i in ('type "!file!"^|find /c /v ""') do for /l %%j in (1 1 %%i) do (
set "line="&set /p "line="
if not defined line (echo() else for /f "tokens=1* delims==" %%k in ("!line!") do if "%%k"=="!key!" (
echo(!key!=!val!
) else (
echo(!line!
)
)
)
move /y "!file!.~tmp" "!file!"
Grüße
rubberman
/EDIT
Beibehaltung von Leerzeilen hinzugefügt.
Hallo Hannes,
Rubbermann hat die Lösung in Batch.
Ich möchte nur mal eine Variante in VBS dazu erwähnen, wie man mittels Replace Daten an irgendeiner Stelle einer Text-Datei einfügen kann.
Schönen Sonntag und viele Grüße
Tsuki
Rubbermann hat die Lösung in Batch.
Ich möchte nur mal eine Variante in VBS dazu erwähnen, wie man mittels Replace Daten an irgendeiner Stelle einer Text-Datei einfügen kann.
MeineDatei = "abc.txt"
Alt = "WSid="
Neu = "WSid=" & "Nutzername"
Set fso=CreateObject("Scripting.FileSystemObject"):txt=fso.OpenTextFile(MeineDatei).ReadAll:fso.CreateTextFile(MeineDatei).Write Replace(txt,Alt,Neu)
Schönen Sonntag und viele Grüße
Tsuki
Hallo Hannes,
mit
Kann man den Benutzernamen (username) mittels VBS auslesen.
Beispiel für deinen Fall:
Einfach etwas probieren und du bekommst das sicherlich schnell hin.
Grüße
Tsuki
mit
Set objNetwork = WScript.CreateObject("WScript.Network")
Username = objNetwork.UserName
Beispiel für deinen Fall:
Set objNetwork = WScript.CreateObject("WScript.Network")
Username = objNetwork.UserName
MeineDatei = "abc.txt"
Alt = "WSid="
Neu = "WSid=" & Username
Set fso=CreateObject("Scripting.FileSystemObject"):txt=fso.OpenTextFile(MeineDatei).ReadAll:fso.CreateTextFile(MeineDatei).Write Replace(txt,Alt,Neu)
Einfach etwas probieren und du bekommst das sicherlich schnell hin.
Grüße
Tsuki