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
GELÖST

Variable aus Datei lesen? Einfacher weg gesucht.

Frage Entwicklung Batch & Shell

Mitglied: 25521

25521 (Level 1)

20.01.2007, aktualisiert 17:51 Uhr, 8172 Aufrufe, 4 Kommentare

Wie kann ich aus einer Datei eine variable auslesen?

Hallo erst mal,

ich habe eine Datei namens Conf.wcl in der steht 1 oder 2 zeichen. A B ... Y Z AA AB ... AY AZ

Nun müste ich nur den weg wiessen wie ich den oder die Buchstaben aus der Datei auslesen kann und einer Variable in einer Batch zuweisen kann. Hintergund, Abhängieg von dem was in Conf.wcl steht soll entschieden werden ob die Dateine gesichert werden müssen und wenn ja, legen die Buchstaben mit fest wohin.
Mitglied: bastla
20.01.2007 um 08:21 Uhr
Hallo Telena!

Versuch
01.
set code= 
02.
for /f %%i in (conf.wcl) do if not defined code set code=%%i
Die etwas aufwändigere Schreibweise soll sicher stellen, dass nur die erste (nicht leere) Zeile verwendet wird; danach ist die Variable "code" schon "defined" (vorhanden) und wird nicht mit Einträgen aus etwaigen weiteren (wenn auch unbeabsichtigten) Zeilen in "conf.wcl" überschrieben.

HTH
bastla
Bitte warten ..
Mitglied: Biber
20.01.2007 um 13:48 Uhr
Moin Telena,

ergänzend zu bastla's Lösung noch ein paar Anmerkungen zu Deiner Conf-Datei.
ich habe eine Datei namens Conf.wcl in der steht 1 oder 2 zeichen..
Bin nicht sicher, ob ich das richtig verstehe....
Wenn wirklich die ganze conf.wcl nur aus dieser einen Zeile besteht, dann geht es am einfachsten mit
01.
set /p neueVariable=<Conf.wcl
Wenn die Conf.wcl halbwegs pflegbar/lesbar konzipiert ist und sinngemäß wie eine *.ini-Datei aussieht
01.
.... 
02.
; das ist eine conf.wcl-Datei 
03.
; Da können Kommentarzeilen drin stehen, damit ein Leser weiß, was er ändern kann oder nicht ändern darf 
04.
;  da können [Sections] enthalten sein, um eine Eindeutigkeit von Einträgen sicherzustellen etc. 
05.
;Beispiel: 
06.
[Sicherung] 
07.
; So könnte 1 bedeuten "Ja" und 0/kein Eintrag "nicht sichern" 
08.
Sichern=1 
09.
BackupPfad=X:\Archiv
Wenn es als so in der Art aussehen würde, dann kannst du einzelne Zeilen-Einträge gezielt mit SET [ohne /P ] in geleichnamige Variablen setzen, wenn Du die relevante Zeile mit FindStr.exe ermittelst:
01.
:: --ermitteln und Setzen mit einer FOR /F-Anweisung- 
02.
FOR /F %%i in ('findstr  /i "BackupPfad" conf.wcl')  do Set %%i 
03.
:: dann steht der Wert in einer Variablen %BackupPfad%
Gruß
Biber
Bitte warten ..
Mitglied: 25521
20.01.2007 um 14:45 Uhr
Danke erst mal euch 2,

Ja die Conf.wcl ist selbst erdacht und es stehen nur die Bustaben drin in Zeile 1. Sinn, wenn dort stände T und der Benutzer möchte aber mit Konfiguration B starten. Dann wird erst die Conf.wcl geladen. Der Inhalt mit der Auswahl des Benutzers verglichen. So da B und T unterschiedlich sind wird einfach die aktuelle Config nach Bachup\WTF_“Inhalt aus Conf.wcl“ gesichert und danach weil ja der Benutzer auf Config B starten will, Der Inhalt von Backup/WTF_B nach rauskopiert und die alte Config ersäst.

Ich habe zwar schon ein Skript das dieses machen kann, nur leider ist es nur in der Lage 2 Konfigurationen zu unterstützen.

01.
@Echo off 
02.
Rem *** Start vorbereitungen *** 
03.
Rem **************************** 
04.
IF exist Backup\Loader.log Goto Start_0 
05.
Echo Log erstellt am %date% um %time% > Backup\Loader.log 
06.
 
07.
:Start_0 
08.
Echo ' >> Backup\Loader.log 
09.
Echo Start am %date% um %time% >> Backup\Loader.log 
10.
tasklist | find "WoW.exe" >nul 
11.
IF %errorlevel% EQU 0 Goto Fehler_3 
12.
 
13.
IF exist WTF\Conf.A Goto Start_1 
14.
IF exist WTF\Conf.B Goto Start_1 
15.
Goto Fehler_1 
16.
 
17.
:Start_1 
18.
IF /I (%1) EQU (/A) Goto Spiel_A 
19.
IF /I (%1) EQU (/B) Goto Spiel_B 
20.
 
21.
If /I (%1) EQU (/Hilfe) Goto Help_1 
22.
If /I (%1) EQU (/Help) Goto Help_1 
23.
If /I (%1) EQU (/?) Goto Help_1 
24.
Goto Fehler_2 
25.
 
26.
Rem ---------------------------------------------------------------------- 
27.
 
28.
 
29.
Rem *** Mit Config A Spielen *** 
30.
Rem **************************** 
31.
:Spiel_A 
32.
Echo Bereite das Starten von World of Warcraft mit Config A vor. 
33.
Echo %time% Bereite das Starten von World of Warcraft mit Config A vor. >> Backup\Loader.log 
34.
IF exist WTF\Conf.A Goto Ende 
35.
 
36.
Rem *** Sichern von Config B *** 
37.
Echo Sichere die Configuration. 
38.
Echo %time% Sichere Configuration B Nach Backup\ >> Backup\Loader.log 
39.
CD Backup 
40.
rmdir Interface_B /S /Q 
41.
mkdir Interface_B 
42.
CD.. 
43.
XCOPY Interface /E /K /R Backup\Interface_B /Q 
44.
 
45.
CD Backup 
46.
rmdir WTF_B /S /Q 
47.
mkdir WTF_B 
48.
CD.. 
49.
XCOPY WTF /E /K /R Backup\WTF_B /Q 
50.
Echo %time% Sichere OK >> Backup\Loader.log 
51.
 
52.
Rem *** Alte Configuration Löschen *** 
53.
Echo Loesche INTERFACE und WTF... 
54.
Echo %time% Löschen der alten Configuration und laden von Configuration A >> Backup\Loader.log 
55.
rmdir Interface /S /Q 
56.
rmdir WTF /S /Q 
57.
 
58.
Echo Erstelle Vezeichnisse. 
59.
mkdir Interface 
60.
mkdir WTF 
61.
 
62.
Echo Copiere Interface und einstellungen... 
63.
XCOPY Backup\Interface_A /E /K /R Interface /Q 
64.
XCOPY Backup\WTF_A /E /K /R WTF /Q 
65.
Echo %time% Laden OK >> Backup\Loader.log 
66.
Goto Ende 
67.
 
68.
 
69.
Rem *** Mit Config B Spielen *** 
70.
Rem **************************** 
71.
:Spiel_B 
72.
Echo Bereite das Starten von World of Warcraft mit Config B vor. 
73.
Echo %time% Bereite das Starten von World of Warcraft mit Config B vor. >> Backup\Loader.log 
74.
IF exist WTF\Conf.B Goto Ende 
75.
 
76.
Rem *** Sichern von Config A *** 
77.
Echo Sichere die Configuration. 
78.
Echo %time% Sichere Configuration A Nach Backup\ >> Backup\Loader.log 
79.
CD Backup 
80.
rmdir Interface_A /S /Q 
81.
mkdir Interface_A 
82.
CD.. 
83.
XCOPY Interface /E /K /R Backup\Interface_A /Q 
84.
 
85.
CD Backup 
86.
rmdir WTF_A /S /Q 
87.
mkdir WTF_A 
88.
CD.. 
89.
XCOPY WTF /E /K /R Backup\WTF_A /Q 
90.
Echo %time% Sichere OK >> Backup\Loader.log 
91.
 
92.
Rem *** Alte Configuration Löschen *** 
93.
Echo Loesche INTERFACE und WTF... 
94.
Echo %time% Löschen der alten Configuration und laden von Configuration B >> Backup\Loader.log 
95.
rmdir Interface /S /Q 
96.
rmdir WTF /S /Q 
97.
 
98.
Echo Erstelle Vezeichnisse. 
99.
mkdir Interface 
100.
mkdir WTF 
101.
 
102.
Echo Copiere Interface und einstellungen... 
103.
XCOPY Backup\Interface_B /E /K /R Interface /Q 
104.
XCOPY Backup\WTF_B /E /K /R WTF /Q 
105.
Echo %time% Laden OK >> Backup\Loader.log 
106.
Goto Ende 
107.
 
108.
Rem *** Fehler Meldungen *** 
109.
:Fehler_1 
110.
Echo %time% Fehler code 1 >> Backup\Loader.log 
111.
Echo Keine Configuration zum sichern gefunden. 
112.
Echo Um die Configuratin zu erkennen muss im WTF Ordner eine Datei Conf.A oder Conf.B existieren. 
113.
Goto F_Ende 
114.
 
115.
:Fehler_2 
116.
Echo %time% Fehler code 2 >> Backup\Loader.log 
117.
Echo Fehler! 
118.
Echo Keine Configuration zum starten angegeben. 
119.
Echo Gültiege eingaben sind /A /B /Hilfe /Help /? 
120.
Goto F_Ende 
121.
 
122.
:Fehler_3 
123.
Echo %time% Fehler code 3 >> Backup\Loader.log 
124.
Echo Fehler! 
125.
Echo World of Warcraft wird bereits ausgeführt. 
126.
Echo Um über den Loader zu starten darf World of Warcraft nicht ausgeführt werden. 
127.
Echo Bitte beenden sie World of Warcraft und starten dan über den Loader neu. 
128.
Goto F_Ende 
129.
 
130.
Rem ************************* 
131.
 
132.
:Help_1 
133.
Echo Die Hilfe ist noch nicht verfügbar. 
134.
 
135.
:F_Ende 
136.
Echo Programm Ende. 
137.
Pause 
138.
exit /B 
139.
 
140.
:Ende 
141.
Echo Starte World of Warcraft - Viel spass beim spielen! 
142.
Echo %time% Configuration OK Starte World of Warcraft. >> Backup\Loader.log 
143.
Start Launcher.exe
Da hatte ich die Idee, wenn ich den Buchstaben der Config in eine feste datei rein schreibe, eben Conf.wcl. Dann bin ich in der Lage fast unendlich viele Konfigurationen zu benutzen.
Bitte warten ..
Mitglied: 25521
20.01.2007 um 17:51 Uhr
Nur zur Vervollständigung.

Habe jetzt diesen teil geschaffen.

01.
Rem *** Alte Interface Sichern **** 
02.
:AIS ;;<--- Rein 
03.
IF EXIST WTF\Conf.wcl Goto SRDY 
04.
Set LAST_F=Keine Conf.wcl gefunden 
05.
Goto :eof 
06.
:SRDY 
07.
FOR /F %%i in ('findstr /i "Sichern" WTF\Conf.wcl') do Set %%i 
08.
IF exist Backup\WTF_%Sichern% Call :DWTFS 
09.
IF exist Backup\Interface_%Sichern% Call :DINTERS 
10.
XCOPY WTF /E /K /R Backup\WTF_%Sichern% /I /Q 
11.
XCOPY Interface /E /K /R Backup\Interface_%Sichern% /I /Q 
12.
Set LAST_F=OK 
13.
Goto :eof ;;---> Raus 
14.
:DWTFS 
15.
CD Backup 
16.
RMDIR WTF_%Sichern% /S /Q 
17.
MKDIR WTF_%Sichern% 
18.
CD.. 
19.
Goto :eof 
20.
:DINTERS 
21.
CD Backup 
22.
RMDIR Interface_%Sichern% /S /Q 
23.
MKDIR Interface_%Sichern% 
24.
CD.. 
25.
Goto :eof 
26.
Rem *******************************

Danke noch mal an Biber.
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Netzwerkmanagement
Einfacher Router gesucht für 150 Clients (4)

Frage von weisseradler zum Thema Netzwerkmanagement ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
gelöst Aktueller Besitzer der aktuellen Datei herausfinden und in Variable schreiben (11)

Frage von Peter32 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 ...