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
Please also mark the comments that contributed to the solution of the article
Content-Key: 205104
Url: https://administrator.de/contentid/205104
Printed on: April 25, 2024 at 20:04 o'clock
8 Comments
Latest comment
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!
... 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 - 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:
@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