Top-Themen

Aktuelle Themen (A bis Z)

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

Zeile in einer *.ini auslesen und ggf. Parameter ändern

Frage Entwicklung Batch & Shell

Mitglied: Rainzi

Rainzi (Level 1) - Jetzt verbinden

22.12.2005, aktualisiert 30.12.2005, 7490 Aufrufe, 11 Kommentare

Hallo,
ich hab ein neues Problem.
Nachdem ich eine x.ini in das Verzeichnis C:\Dokumente und Einstellungen\ username kopiert habe, muß danach die Datei nach einem Parameter durchsucht werden und dann ggf. geändert werden. Falls also in der x.ini steht
XServerInvisible=0
muß das geändert werden auf
XServerInvisible=1
danach muß eine andere xx.ini im Verzeichnis c:\programme\XX
nach 2 Befehlszeilen durchsucht werden und diese ggf. auch geändert werden, nämlich von
StartHidden=0
StartInvisible=0
zu
StartHidden=1
StartInvisible=1
Für Hilfe wär ich dankbar, auch wenns nur der Verweis auf ein Tutorial ist.

Gruß
Rainer
Mitglied: stepas
22.12.2005 um 11:37 Uhr
das ganze mit notepad aufmachen und dann ganz normal aendern. Ist die .ini sehr gross mit strg+F suchen und veraendern
Bitte warten ..
Mitglied: Biber
22.12.2005 um 12:55 Uhr
Moin Rainzi,
machen wir diesmal umgekehrt - Codeschnipsel lass ich da, Tutorial folgt später...

<font class=code>::ReplaceInIni.bat
::Syntax %0 Name-Ini-Datei KeyName Value
@echo off & setlocal
If not exist %1 (echo Datei %1 nicht gefunden) & goto :eof
Find /i "%2" %1>nul || ((echo KeyName %2 nicht gefunden) & goto :eof)
Set "new=New%random%.ini"
For /F "delims== tokens=1,2*" %%a in (%1) do (
If /i [%%a]==[%2] (
echo %%a=%3 >>%new%
) else (
If [%%b]==[] (
echo %%a >>%new%
) else (
echo %%a=%%b >>%new%
)))

if exist %new% (
REM --if Backup needed: if exist %~dpn1_old%~x1 del %~dpn1_old%~x1
REM --if Backup needed: ren %1 %~n1_old%~x1
copy /y %new% %~f1 >nul
del %new% >nul
)
::----snapp ReplaceInIni.bat</font>
How To Use:
Den Codeschnipsel aufrufen mit
Call [Pfad\]ReplaceInIni Pfad-und-Name-Inidatei KeyName NeuerWert

Beispiel - Deine z:\config.ini vorher:
[bla]
;nach 2 Befehlszeilen durchsucht
;werden und diese ggf.
;auch geändert werden, nämlich von
StartHidden=0
StartInvisible=0

-->Aufruf (am CMD-Prompt)
ReplaceInIni z:\config.ini StartHidden 1
...
Deine z:\config.ini vorher:
[bla]
;nach 2 Befehlszeilen durchsucht
;werden und diese ggf.
;auch geändert werden, nämlich von
StartHidden=1
StartInvisible=0

-->Aufruf (in einem Batch )
call ReplaceInIni.bat z:\config.ini StartHidden 1

HTH Biber
P.S. Erläuterung/Doku folgt bei Bedarf oder später in einem Tutorial.
Bitte warten ..
Mitglied: Rainzi
23.12.2005 um 09:19 Uhr
Sorry,
aber nix versteh!!
Meine Syntax sieht so aus:


@echo off
copy F:\IT\Test\test.ini C:\Test

Call
::ReplaceInIni.bat
::Syntax %0 Name-Ini-Datei KeyName Value
@echo off & setlocal
If not exist F:\IT\Test\test.ini & goto :eof
Find /i "%2" %1>nul || ((echo KeyName %2 nicht gefunden) & goto :eof)
Set "new=New%random%.ini"
For /F "delims== tokens=1,2*" %%a in (%1) do (
If /i [%%a]==[%2] (
echo %%a=%3 >>%new%
) else (
If [%%b]==[] (
echo %%a >>%new%
) else (
echo %%a=%%b >>%new%
)))

if exist %new% (
REM --if Backup needed: if exist %~dpn1_old%~x1 del %~dpn1_old%~x1
REM --if Backup needed: ren %1 %~n1_old%~x1
copy /y %new% %~f1 >nul
del %new% >nul

start C:\Programme\Test\testserver.exe

:ende

aber wo und wie muß ich bei Deinem "Schnipsel" was eintragen????

Aber erstmal Danke.

Frohes Fest

Gruß Rainer
Bitte warten ..
Mitglied: Biber
23.12.2005 um 23:46 Uhr
Moin Rainer,
gedacht war das Ganze etwas schlichter:

::----Rainers.Bat
@echo off
copy F:\IT\Test\test.ini C:\Test
:: somit sollte in c:\test eine identische Kopie der Original-Ini stehen
:: alle Werte darin stehen auf "vor der Installation"
start /wait C:\Programme\Test\testserver.exe
:: Installation wird durchgeführt (und eigentlich sollte das Installationstool selbst
:: in der Ini-Datei etwas ändern und nicht irgendein Tool hinterher)
:: ...aber was solls, nehmen wir an, die *. exe lief ohne Fehler
If not ErrorLevel 1 (
Call F:\IT\Test\ReplaceInIni.bat C:\Test\test.ini StartHidden 1
Call F:\IT\Test\ReplaceInIni.bat C:\Test\test.ini StartInvisible 1
)
...
...
:: -----snapp Rainers.Bat

So in etwa wäre meine Skizze. Wobei, wie geschrieben, normalerweise das Inst-Prog selbst die Ini ändern oder besser noch neu erzeugen sollte.
Geht das denn nicht?

Grüße Biber
Bitte warten ..
Mitglied: Rainzi
27.12.2005 um 07:59 Uhr
Hallo Biber,

erstmal Frohe Weihnachten gehabt zu haben.
Also ich erklär jetzt mal das Szenario. Wir brauchen für unsere ACD (telefonanlagensoftware) einen neuen Client für die User. Dieser braucht nicht installiert werden, sondern einfach nur in das Verzeichnis kopiert werde. Leider schreibt der neue Client seine ini-Datei nicht mehr an die gleiche Stelle wie der alte Client, sondern nach C:\Dokumente und Einstellung\%username%. Die Testserver.exe führt keine Installation duch. Der Testserver muß zwingend nach dem Kopieren der neuen Clients einmal neu gestartet werden, keine Ahnung warum. Das Problem ist, das sowohl in der Client-ini als auch in der Server-ini zwei Werte überprüft werden müssen.
In der Server-ini :
StartHidden=1
StartInvisible=1
Und in der Client-ini:
ServerInvisible=1
Wenn da andere Werte Stehen (z.B. 0) müssen diese überschrieben werden.
Ich hoffe Du kannst mir helfen.

Gruß
Rainer
Bitte warten ..
Mitglied: Biber
27.12.2005 um 14:54 Uhr
Moin Rainer,
danke für die Weihnachtswünsche und dieselben zurück

Also, nochmal zu Deiner Konstellation und zu den begrenzten Möglichkeiten meines Batchschnipsels.
Ich habe den ja so ausgelegt, dass der nur irgendetwas tut, wenn der verlangte Ini-Key "StartHidden" oder "StartInvisible" überhaubt vorhanden ist. Den neuanlegen/anhängen will ich keinen, da mir dazu die Information fehlt, in welcher Ini-Section der reingehört.

Ich habe jetzt noch nicht ganz verstanden, ob die Werte in der Client-Inidatei VOR oder NACH dem Start der kopierten Testserver.exe erfolgen muss, ist aber auch egal. Zumindest wäre die Skizze wie folgt

::...der Clientkrams-Kopier-Batch, der toi toi toi ja vom am Client angemeldeten User gestartet wird
....
copy \\server\Quellverzeichnis\{ACD-Klamauk} [Client-Zielverzeichnis]
start /w [ClientPfad\]testserver.exe
::danach die Sicherstellung der "richtigen " Ini-Werte
Call [Pfad\]ReplaceInIni.bat "C:\Dokumente und Einstellung\%username%\ACDxy.ini" StartHidden 1
Call [Pfad\]ReplaceInIni.bat "C:\Dokumente und Einstellung\%username%\ACDxy.ini" StartInvisible 1
.....

und entsprechend auch auf dem Server.

Wobei ich auch immer noch nicht verstehe, wer denn nun die "fehlerhafte" Ini-Datei eigentlich erzeugt? Die Testserver.exe?
Denn wenn die schon im Quell-Kopierverzeichnis "falsch" wäre, könntet ihr ja auch dort schon die Werte berichtigen...

Gruß Biber
Bitte warten ..
Mitglied: Rainzi
28.12.2005 um 08:24 Uhr
Hi,
also der Server sollte erst nach den Änderungen an den iní´s gestartet werden. Die Server.exe wird acu nicht nicht kopiert sondern nur die neuen client.exe. Die client.ini muss verschoben werden, damit die user ihre Einstellungen behalten. Die Änderungen in den ini´s dienen nur dazu,dass der Server beim Start im Hintergrund bleibt. (wg. User-Verwirrung - was isn das fürn Fenster?)
Mit Call ruft man aber doch einen 2. batch auf oder nicht muß ich dann eine schreiben?
Bei der Syntax unten wird zwar kopiert, aber dann wird die ini geöffnet und nüscht ist.
Fehler??

@echo off
copy F:\IT\Test\testclient.ini C:\Test
Call C:\Test\testclient.ini ReplaceIn C:\test\testclient.ini Testserverinvisible=1
Call C:\Programme\Test\testserver.ini ReplaceIn C:\test\testserver.ini StartHidden=1
Call C:\Programme\Test\testserver.ini ReplaceIn C:\test\testserver.ini StartInvisible=1

start C:\Programme\Test\testserver.exe

:ende

Gruß Rainer
Bitte warten ..
Mitglied: Biber
28.12.2005 um 11:36 Uhr
Moin Rainer,

möglicherweise ist ein Browserproblem.. vermutlich werden meine Kommentare in Deinem Browser fehlerhaft dargestellt.

Ich versuch nochmal zu skizzieren:

- ich habe ganz ganz oben mal einen Batch-Schnipsel namens ReplaceInIni.bat gepostet
- den kannst Du per Copy & Paste ausschneiden, in Deinen Lieblingseditor kopieren und unter dem Namen "ReplaceInIni.bat" irgendwohin speichern. Das ist der Batch, den Du mit Call [Pfad\]ReplaceInIni.bat aufrufen kannst.
- alternativ kannst Du über die Funktion "Seite drucken" den gesamten Thread ausdrucken und danach mit Freeware-OCR-Tools diesen Batch-Code extrahieren und dann als Datei "ReplaceInIni.bat" speichern. Ask Dr. Google.
- eine weitere (moralisch bedenklichere) Möglichkeit ist der so genannte "Praktikantenmissbrauch zum Abtippen von Codezeilen". Details siehe ebenfalls Dr. Google. Denkbar ist auch die Suche nach "Praktikantinnenmissbrauch", aber die liefert andere Suchergebnisse.

Wenn Du also, auf welchem Wege auch immer, diese "ReplaceInIni.bat" erzeugt und z.B im Pfad "F:\IT\Test" gespeichert hast, folgt noch ein notwendiger Zwischenschritt.
Nimm den folgenden von Dir geposteten Code:
~~~
@echo off
copy F:\IT\Test\testclient.ini C:\Test
Call C:\Test\testclient.ini ReplaceIn C:\test\testclient.ini Testserverinvisible=1
Call C:\Programme\Test\testserver.ini ReplaceIn C:\test\testserver.ini StartHidden=1
Call C:\Programme\Test\testserver.ini ReplaceIn C:\test\testserver.ini StartInvisible=1
~~~~
..und ziehe ihn langsam an einem starken Magneten vorbei.

Danach versuche es bitte noch einmal mit der von mir auch schon weiter oben geposteten Syntax.
:: @echo off
:: erstmal kein Echo off.. Alle Fehler sehen
copy F:\IT\Test\testclient.ini C:\Test
copy F:\IT\Test\testserver.ini C:\Test

Call F:\IT\Test\ReplaceInIni.bat C:\test\testclient.ini Testserverinvisible 1
Call F:\IT\Test\ReplaceInIni.bat C:\test\testserver.ini StartHidden=1
Call F:\IT\Test\ReplaceInIni.bat C:\test\testserver.ini StartInvisible=1
~~~

Wenn das alles nicht funktionieren sollte, schicke mir bitte per pn eine Mailadresse von Dir.
Gruß Biber
Bitte warten ..
Mitglied: Rainzi
29.12.2005 um 07:55 Uhr
Gewonnen!!!!!!!!!
Echt super. Vielen Dank. Nur das mit dem Magneten hab ich nicht verstanden.

Gruß
Rainer
Bitte warten ..
Mitglied: Biber
29.12.2005 um 17:41 Uhr
Moin Rainer,
das mit dem Magneten kannst Du vernachlässigen..

Hauptsache, es läuft jetzt.
Grüße Biber
Bitte warten ..
Mitglied: Biber
30.12.2005 um 09:32 Uhr
So,
kleine Ergänzung, die in der Praxis nötig ist, wie Rainer und ich festgestellt haben...

Der obige Batchschnipsel ist nicht darauf eingerichtet, das die *.Ini-Datei auch in einem "Pfad mit Leerzeichen" liegen kann wie zum Beispiel "c:\Dokumente und Firlefanz\%username%\".

Die oben gepostete ReplaceInIni.bat ließe sich dann nur verwenden, wenn man/frau den Parameter "inidatei" als kurzen Dateinamen übergeben würde.
Beispiel:
Call ReplaceInIni.bat C:\Dokume~1\%username%\testserver.ini Startinvisible 1

Habe eine kleine Anpassung gemacht, nun läuft es auch mit dem Aufruf:
Call ReplaceInIni.bat "c:\Dokumente und Einstellungen\%username%\testserver.ini Startinvisible 1
<font class=code>::ReplaceInIni.bat Version 0.02
::Syntax %0 Name-Ini-Datei KeyName Value
@echo off & setlocal
If not exist %1 (echo Datei %1 nicht gefunden) & goto :eof
Find /i "%2" %~s1>nul || ((echo KeyName %2 nicht gefunden) & goto :eof)
Set "new=New%random%.ini"
For /F "delims== tokens=1,2*" %%a in (%1) do (
If /i [%%a]==[%2] (
echo %%a=%3 >>%new%
) else (
If [%%b]==[] (
echo %%a >>%new%
) else (
echo %%a=%%b >>%new%
)))

if exist %new% (
REM --if Backup needed: if exist %~dspn1_old%~x1 del %~dspn1_old%~x1
REM --if Backup needed: ren %~s1 %~n1_old%~x1
copy /y %new% %~f1 >nul
del %new% >nul
)
::----snapp ReplaceInIni.bat Vers. 0.02</font>

Grüße Biber
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell INI Tags auslesen
gelöst Frage von H41mSh1C0RBatch & Shell2 Kommentare

Hi@All, Vorgabe INI. Aus dem File will ich die Namen der Bereiche auslesen und in einen String packen mit ...

Batch & Shell
Textdatei Zeile für Zeile auslesen
Frage von RIPUEDBatch & Shell

Hallo, ich würde gerne mit einem Batch-Skript Zeilen aus einer Textdatei einzeln und nacheinander auslesen und diese dann nach ...

Batch & Shell
BATCH ini Datei Datei auslesen
gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Batch & Shell
Auslesen einer Zeile
Frage von hansbaerBatch & Shell2 Kommentare

Hallo schon wieder, wie bereits erwähnt bin ich eine absolute Flachpfeife was das anbelangt. Nun suche ich ein script, ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 12 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 16 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 16 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 19 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...