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

Variablen aus ini file in batch einlesen

Frage Entwicklung Batch & Shell

Mitglied: Mit.ohne.Ahnung

Mit.ohne.Ahnung (Level 1) - Jetzt verbinden

06.09.2013, aktualisiert 11:04 Uhr, 2263 Aufrufe, 17 Kommentare

Ein freundliches goooood Morning,

hab mal wieder ein Problemchen was ich nicht verstehe.....
ich möchte Variablen aus einer ini einlesen.... aber das script macht was anderes???

Hier vielleicht nur mal das Beispiel mit mit "net use"

meine config.ini:
set DIR_CMD=C:\solutio\Server\PostgreSQL\bin
set PGHOST=Schulungsserver
set Notfall_PGHOST=NotServer
set PGDATABASE=solutiodb
set PGUSER=postgres
set PGPASSWORD=12345
set PGPORT=5432
set DST_PATH=\\%NOTFALL_PGHOST%\Charly$
set DST_FILE=ProduktivServer.backup
set CMD_DUMP=%DIR_CMD%\pg_dump.exe
set CMD_REST=%DIR_CMD%\pg_restore.exe
set CMD_SQL=%DIR_CMD%\psql.exe
set CMD_DUMP_ALL=%DIR_CMD%\pg_dumpall.exe
set NET_USE_?=z

hier einen Auszug von meinem mein
01.
@echo off 
02.
 
03.
set "inifile=config.ini 
04.
 
05.
for /f "tokens=2 delims==" %%i in ('findstr "/c:Notfall_PGHOST=" \\127.0.0.1\charly$\Charly\TEST_mit_INI\config.ini') do set NOTFALL_PGHOST=%%i 
06.
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGHOST=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGHOST=%%i 
07.
for /f "tokens=2 delims==" %%i in ('findstr "/c:DIR_CMD=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set DIR_CMD=%%i 
08.
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGDATABASE=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGDATABASE=%%i 
09.
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGUSER=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGUSER=%%i 
10.
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGPASSWORD=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGPASSWORD=%%i 
11.
for /f "tokens=2 delims==" %%i in ('findstr "/c:PGPORT=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set PGPORT=%%i 
12.
for /f "tokens=2 delims==" %%i in ('findstr "/c:DST_PATH=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set DST_PATH=%%i 
13.
for /f "tokens=2 delims==" %%i in ('findstr "/c:DST_FILE=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set DST_FILE=%%i 
14.
for /f "tokens=2 delims==" %%i in ('findstr "/c:CMD_DUMP=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set CMD_DUMP=%%i 
15.
for /f "tokens=2 delims==" %%i in ('findstr "/c:CMD_REST=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set CMD_REST=%%i 
16.
for /f "tokens=2 delims==" %%i in ('findstr "/c:CMD_SQL=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set CMD_SQL=%%i 
17.
for /f "tokens=2 delims==" %%i in ('findstr "/c:CMD_DUMP_ALL" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set CMD_DUMP_ALL=%%i 
18.
for /f "tokens=2 delims==" %%i in ('findstr "/c:NET_USE_?=" \\%NOTFALL_PGHOST%\charly$\TEST_mit_INI\config.ini') do set NET_USE_?=%%i 
19.
 
20.
wait 1 
21.
 
22.
rem **Laufwerk zum Produktivserver verbinden** 
23.
 
24.
IF not exist %NET_USE_?%: net use %NET_USE_?%: \\%PGHOST%\Charly$ 
25.
 
26.
rem ** Charly auf dem ProduktionsServer beenden** 
27.
 
28.
\\%PGHOST%\c$\windows\system32\taskkill /S %PGHOST% /f /IM solutio.exe /T >nul 
29.
 
30.
Pause
Das Problem ist das er mir das Laufwerk zwar verbindet (z), aber lokal z: auf Notserver und nicht Schulungsserver ??
genauso beendet er den Prozess lokal und nicht auf dem Remotesystem??

Wo ist da mein Denkfehler ?

Grüße Frank
Mitglied: Snowman25
06.09.2013 um 11:26 Uhr
Hallo Mit.ohne.Ahnung,

Das sieht nach unnötig viel Code aus. Was möchtest du damit eigentlich erreichen?
Wenn du die "config.ini" (welche kein gültiges INI-File ist. Da gibt es ein bestimmtest Format) zu einer Batch machst und aus einem Skript callst, dann hast du alle Variablen gesetzt.

Gruß,
Snowman25
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
06.09.2013 um 11:33 Uhr
Hallo Snowman25,

über deine angesprochene Lösung habe ich auch schon Nachgedacht....

Was ich gerne machen würde ist die bat zu einer exe kompilieren und über eine gui die config.ini schreiben.

so zumindest ist meine Zielsetzung.... ob das Machbar ist oder nicht.... sagt mir hoffentlich gleich das Licht. ... nein, der Snowman25 ...

Gruß Frank
Bitte warten ..
Mitglied: Snowman25
06.09.2013 um 11:49 Uhr
bat2exe: Vergiss es.
Hatten wir hier schon viele Male besprochen. Sollte nicht gemacht werden.
So ein bat2exe-Teil macht eh nur 'nen Wrapper drum und kopiert die .bat in ein TEMP-Verzeichnis während der Ausführung.
Bitte warten ..
Mitglied: Biber
06.09.2013, aktualisiert um 11:54 Uhr
Moin Mit.ohne.Ahnung,

unabhängig von snowmans Hinweisen, dass dieses Konzept noch ein wenig verfeinert werden sollte - es scheitert im jetzigen Szenario an den falschen Rückgaben von FINDSTR.

Bei der Suche nach "PGHOST" wird auch "Notfall_PGHOST" zurückgegeben.

01.
C:\Users\Biber>echo set Notfall_PGHOST=%DIR_CMD%\psql.exe| findstr /c:PGHOST 
02.
set Notfall_PGHOST=%DIR_CMD%\psql.exe 
Ändere die Vaiable "PGHOST" auf "Normal_PGHOST" und suche nach diesem Namen.

Grüße
Biber
Bitte warten ..
Mitglied: facebraker
06.09.2013 um 11:55 Uhr
Hallo Frank,

warum machst du es nicht gleich VB.NET mit dem Visual Studio Express ist das kein Problem, dann hast du ein sauberes Programm?

Ich empfinde es sogar einfach mit Debugger und GUI zu programmieren, da kannst du in Einzelschritten durchgehen und testen.

Gruß Alex
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
06.09.2013 um 12:00 Uhr
Hallo Bieber,

danke für den Hinweis....

eigentlich dachte ich würde das /c: davor genau das auschließen?

Werde dein Vorschlag aber ausprobieren....

Danke

Gruß Frank
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
06.09.2013 um 12:02 Uhr
Hallo Snowman,

aber prinzipiell könnte das schon funktionieren ?

Sonst müsste ich ja ganz von Null wieder anfangen..

Gruß Frank
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
06.09.2013 um 12:05 Uhr
Hallo Alex,

davon habe ich noch weniger Ahnung als von dem was ich jetzt mache....... versuche mich gerade in die Materie einzuarbeiten.

Hast du mir ein paar Tipps für gute Lektüre für Anfänger zum einsteigen??

Mit diesem script versuche ich gerade meinen Arbeitgeber davon zu überzeugen das eine gute VB Schulung für mich und die Firma das richtige ist

Gruß Frank
Bitte warten ..
Mitglied: Endoro
06.09.2013, aktualisiert um 12:15 Uhr
Hi,
statt dieser ganzen findstr Operationen geht es einfach so:
01.
@echo off &SETLOCAL 
02.
FOR /f "tokens=1*" %%a IN (config.ini) DO SET "%%~b"
und die Variablen sind geladen wenn du schon nicht einfach copy config.ini config.bat&call config.bat machen willst.
lg.
Bitte warten ..
Mitglied: facebraker
06.09.2013 um 12:16 Uhr
Hallo Frank,

Amazon ist dein Freund

http://www.amazon.de/Einstieg-Visual-Basic-2012-Programmieranf%C3%A4nge ...

Ich habe es Learning by doing , mir selbst beigebracht.

Gruß Alex
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
06.09.2013 um 12:19 Uhr
Hallo Endoro,

danke für den Tipp...

... werde ich aber erst morgen testen und Rückmeldung geben... werde jetzt erstmal meinen Geburtstag feiern.... meine Freundin steht schon mit dem Wellholz hinter mir weil ich schon wieder arbeite

Wünsche schönes WE

Frank
Bitte warten ..
Mitglied: Biber
06.09.2013, aktualisiert um 12:20 Uhr
Moin Mit.Ohne.Ahnung,

Zitat von Mit.ohne.Ahnung:
Hallo Bieber,
Bitte ohne "ie".
eigentlich dachte ich würde das /c: davor genau das auschließen?
Warum sollte es? Du sagst doch damit nur, dass nach dem exakten String "PGHOST" gesucht werden soll - und der ist sowohl in "PGHOST" wie in "Notfall_PGHOST" enthalten.
Du kannst nactürlich nach dem String "=PGHOST" suchen - den gibt es nur in einer Zeile.
01.
C:\Users\Biber>echo set Notfall_PGHOST=%DIR_CMD%\psql.exe| findstr /c:"set PGHOST=" 
02.
-- gibt nix zurück
Zum Thema "Will nicht wieder ganz von null anfangen"...

Wenn es aber nur bedeutet, 10 Minuten Aufwand zu haben, dann wäre es doch erwägenswert.

Grüße
Biber
Bitte warten ..
Mitglied: Endoro
06.09.2013 um 12:33 Uhr
Hallo @Biber,
Regex geht auch
01.
findstr /r "\<PGHOST\>"
lg.
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
06.09.2013 um 13:03 Uhr
Hallo Biber,

sorry für das "e" habe mich von deinem Bild verwirren lassen

.... na ja.. 10 min ... das script ist etwas länger... ist nur ein ausschnitt davon .

Gruß Frank
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
06.09.2013 um 13:04 Uhr
Hallo Endoro,

regex bedeutet ? macht was ?

Gruß Frank
Bitte warten ..
Mitglied: Endoro
06.09.2013 um 13:12 Uhr
Hi,
Regex
lg.
Bitte warten ..
Mitglied: Mit.ohne.Ahnung
06.09.2013 um 13:44 Uhr
Hallo Alex,

danke dir... werde ich mir reinziehen...

Gruß Frank
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Variable aus VBS in Batch einlesen
gelöst Frage von racer1601Batch & Shell4 Kommentare

Hallo ich habe das Problem das ich die Variable "Ordner" aus einem VBS Script nicht in meine Batch bekomme. ...

Batch & Shell
Ini File mit Batch auslesen und weiter verarbeiten
gelöst Frage von ZendaraBatch & Shell2 Kommentare

Hallo, Ich habe ein Problem mit einem Batch File welches mir Variablen aus einem Ini File auslesen und zB. ...

Batch & Shell
Powershell new variable foreach section in ini-File
gelöst Frage von MarabuntaBatch & Shell5 Kommentare

Hallo, ich nutze die Get-IniContent Funktion von hier: darin ist auch eigentlich alles drin nur regex ist mir noch ...

Batch & Shell
Arbeiten mit INI Files in VBScript
Anleitung von FriemlerBatch & Shell11 Kommentare

In letzter Zeit habe ich hier im Forum des Öfteren Fragen gesehen, wie man aus einer INI-Datei Werte liest ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 43 MinutenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 4 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell8 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...