Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Batch Parameter auslesen und in bestehnder Datei einfügen (Variable)

Frage Entwicklung Batch & Shell

Mitglied: olioink

olioink (Level 1) - Jetzt verbinden

16.04.2013 um 23:24 Uhr, 1905 Aufrufe, 8 Kommentare, 1 Danke

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

Mitglied: bastla
16.04.2013 um 23:29 Uhr
Hallo olioink und willkommen im Forum!

Was verstehst Du unter "einfügen"? Falls nur "am Ende hinzufügen" gemeint wäre, einfach
>>"\test neu\test.txt" echo %SRN%
Grüße
bastla
Bitte warten ..
Mitglied: olioink
17.04.2013 um 20:30 Uhr
Moin Moin,

na ja steht in Klammern (Variable), soll als eine Varaiable eingestezt werden. Genauer
geht es um eine Seriennummer die gesetzt wird und vom Setup verwendet werden soll.

Gruß
olioink
Bitte warten ..
Mitglied: bastla
17.04.2013 um 20:53 Uhr
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
Bitte warten ..
Mitglied: olioink
17.04.2013 um 21:33 Uhr
Moin Moin bastla,

habe also 2 Dateien, in der einen steht der Computername Nummer.

Datei 1 (sn.txt) mit Namen und Nummer
01.
 PC01 xxxx.xxxx.xxx.xxx.
Datei 2 (test.txt) mit der Variablen:
01.
 Serienenummer="%SRN%"  
Die Variable %SRN% soll durch die Nummer ersetzt werden....

Erste Zeile des Batch ist
01.
 for /f "tokens=2" %%i in ('findstr /i "%computername%" "sn.txt"') do set SRN=%%i 
02.
  
Zweite Zeile soll sein
01.
set SRN /P="\test neu\test.txt" %SRN% 
soweit kann ich die Nummer auslesen bekomme sie aber nicht in die zweite Datei.

Gruß
olioink
Bitte warten ..
Mitglied: bastla
18.04.2013, aktualisiert um 12:56 Uhr
Hallo olioink!

Und warum schreibst Du die zweite Datei nicht einfach neu, wenn dort ohnehin nur
 Serienenummer="%SRN%"
stehen soll?

Grüße
bastla
Bitte warten ..
Mitglied: olioink
22.04.2013 um 21:18 Uhr
Moin bastla,

selbstverständlich steht nur nicht das in der Datei. Vom Prinzip:

Variable über batch auslesen
Dann die zwischen gespeicherte Variable in eine weitere Datei hinein schreiben.

D.h. die Datei ersetzt den Platzhalter durch den Wert der Variable. (Speichert den Wert in der Datei ab...)

Die Datei wird dann in einem unabhängigen Schritt weiter verwendet. Diese "Ergebinss Datei"
wird umkopiert und mit einer Silent Installation verwendet.

So schwer ist das doch nicht zu verstehen.

Ich denke ehr, das das nicht so ohne weiters geht, im Batch.
Sehr viele Fragen beschäftigen sich damit... ohne ein entsprechends Ergebniss.

Und selbst wenn ich sie neu schreiben muss, soll der ganze andere Inhalt mit eingefügt werden.

Im Prinzip läuft es auf gleiche raus.

Hoffe das jetzt verständlicher wird. Und wenn das nicht geht, welche alternative hat man...?

see you (hear you, read you)
olioink
Bitte warten ..
Mitglied: bastla
22.04.2013, aktualisiert um 22:00 Uhr
Hallo olioink!
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:
01.
@echo off & setlocal 
02.
set "Datei=D:\test.txt" 
03.
set "Platzhalter=SRN" 
04.
 
05.
set "SRN=" 
06.
for /f "tokens=2" %%i in ('findstr /i "%computername%" "sn.ini"') do set "SRN=%%i" 
07.
if not defined SRN echo SRN nicht gefunden! & goto :eof 
08.
 
09.
set "TempDat=%temp%\temp.txt" 
10.
move "%Datei%" "%TempDat%" 
11.
(for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%TempDat%"') do ( 
12.
    set "Zeile=%%j" 
13.
    setlocal enabledelayedexpansion 
14.
    if defined Zeile ( 
15.
        echo !Zeile:%Platzhalter%=%SRN%! 
16.
    ) else ( 
17.
        echo( 
18.
19.
    endlocal 
20.
))>"%Datei%"
In der relevanten Zeile der "test.txt" sollte allerdings
Serienenummer="SRN"
(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
01.
@echo off & setlocal 
02.
set "Datei=D:\test.txt" 
03.
set "Platzhalter=SRN" 
04.
 
05.
set "SRN=" 
06.
for /f "tokens=2" %%i in ('findstr /i "%computername%" "sn.ini"') do set "SRN=%%i" 
07.
if not defined SRN echo SRN nicht gefunden! & goto :eof 
08.
 
09.
set "TempDat=%temp%\temp.txt" 
10.
move "%Datei%" "%TempDat%" 
11.
(for /f "tokens=1* delims=:" %%i in ('findstr /n "^" "%TempDat%"') do ( 
12.
    call echo(%%j 
13.
))>"%Datei%"
versuchen.

Grüße
bastla
Bitte warten ..
Mitglied: olioink
06.05.2013 um 23:46 Uhr
Danke bastla,

hat soweit geklappt..

merci

olioink
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Mit VBA im Monatskalender Datum suchen - aus anderer Datei einfügen (6)

Frage von Otto1699 zum Thema VB for Applications ...

Batch & Shell
gelöst Mit batch zeilen auslesen (2)

Frage von keksegriller zum Thema Batch & Shell ...

Batch & Shell
gelöst Mehrere Ordnernamen auslesen und in eine Variable schreiben (5)

Frage von schmitho zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...