Batch Parameter auslesen und in bestehnder Datei einfügen (Variable)
Moin Moin,
stehe leider auf dem Schlauch. Möchte aus einer Datei eine Variable auslesen (klappt) und in einer anderen
einfügen (klappt nicht).
Zur Zeit sieht es so aus:
for /f "tokens=2" %%i in ('findstr /i "%computername%" "sn.ini"') do set SRN=%%i
Variable auslesen
Danach soll der Batch die Variable in einem Unterverzeichniss in eine Datei einfügen:
set SRN=<"\test neu\test.txt"> %SRN%
Bekomme das nicht hin...
Für hilfe dankbar..
see you
stehe leider auf dem Schlauch. Möchte aus einer Datei eine Variable auslesen (klappt) und in einer anderen
einfügen (klappt nicht).
Zur Zeit sieht es so aus:
for /f "tokens=2" %%i in ('findstr /i "%computername%" "sn.ini"') do set SRN=%%i
Variable auslesen
Danach soll der Batch die Variable in einem Unterverzeichniss in eine Datei einfügen:
set SRN=<"\test neu\test.txt"> %SRN%
Bekomme das nicht hin...
Für hilfe dankbar..
see you
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 205104
Url: https://administrator.de/forum/batch-parameter-auslesen-und-in-bestehnder-datei-einfuegen-variable-205104.html
Ausgedruckt am: 18.05.2025 um 10:05 Uhr
8 Kommentare
Neuester Kommentar
Hallo olioink!
Klarer macht's diese Erklärung auch nicht ...
Magst Du nicht einfach einen Vorher-Nachher-Vergleich der zweiten Datei (als "Code" formatiert posten?
Grüße
bastla
Klarer macht's diese Erklärung auch nicht ...
Magst Du nicht einfach einen Vorher-Nachher-Vergleich der zweiten Datei (als "Code" formatiert posten?
Grüße
bastla
Hallo olioink!
- dass es mehrere Zeilen in der Datei 2 gibt, hast Du jedenfalls noch nicht einmal in Deinem Beispiel oben gezeigt ...
... anyhow: Besser ginge Derartiges zwar per VBS, aber grundsätzlich lässt sich das auch per Batch erledigen - etwa so:
In der relevanten Zeile der "test.txt" sollte allerdings
(also ohne Prozentzeichen) stehen, wobei "SRN" nur einmal in der gesamten Datei vorkommen darf. Zur Sicherheit kannst Du natürlich "SRN" auch durch zB "_SRN_" ersetzen (natürlich auch in Zeile 3 des Batches).
Um Deine ursprüngliche Idee (also mit "%SRN%") umzusetzen, könntest Du übrigens noch
versuchen.
Grüße
bastla
So schwer ist das doch nicht zu verstehen.
... aber offensichtlich ist es schwer zu erklären ... anyhow: Besser ginge Derartiges zwar per VBS, aber grundsätzlich lässt sich das auch per Batch erledigen - etwa so:
@echo off & setlocal
set "Datei=D:\test.txt"
set "Platzhalter=SRN"
set "SRN="
for /f "tokens=2" %%i in ('findstr /i "%computername%" "sn.ini"') do set "SRN=%%i"
if not defined SRN echo SRN nicht gefunden! & goto :eof
set "TempDat=%temp%\temp.txt"
move "%Datei%" "%TempDat%"
(for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%TempDat%"') do (
set "Zeile=%%j"
setlocal enabledelayedexpansion
if defined Zeile (
echo !Zeile:%Platzhalter%=%SRN%!
) else (
echo(
)
endlocal
))>"%Datei%"
Serienenummer="SRN"
Um Deine ursprüngliche Idee (also mit "%SRN%") umzusetzen, könntest Du übrigens noch
@echo off & setlocal
set "Datei=D:\test.txt"
set "Platzhalter=SRN"
set "SRN="
for /f "tokens=2" %%i in ('findstr /i "%computername%" "sn.ini"') do set "SRN=%%i"
if not defined SRN echo SRN nicht gefunden! & goto :eof
set "TempDat=%temp%\temp.txt"
move "%Datei%" "%TempDat%"
(for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%TempDat%"') do (
call echo(%%j
))>"%Datei%"
Grüße
bastla