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

Mitglied: Mit.ohne.Ahnung

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

06.09.2013, aktualisiert 11:04 Uhr, 2314 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
Variable einlesen (Batch)
gelöst Frage von clragonBatch & Shell3 Kommentare

Liebe Administratoren Ich wollte mir gerade ein paar schmale Werkzeuge für Verschlüsselung und Entschlüsselung mit Batch und der GPG ...

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
Windows Userverwaltung

Passwortwechsel in der Domain bei Anmeldung erzwingen

Anleitung von Looser27 vor 52 MinutenWindows Userverwaltung

Nachdem es immer wieder User geschafft haben, sich während des laufenden Betriebes auszusperren, habe ich nach einer Möglichkeit gesucht, ...

Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 3 TagenAusbildung37 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 5 TagenSpeicherkarten6 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 5 TagenSicherheit1 Kommentar

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Passwortwechsel Zeitpunkt festlegen
gelöst Frage von Looser27Windows Userverwaltung28 Kommentare

Guten Morgen liebe Kolleginnen und Kollegen, da es eine Userin in meinem Urlaub geschafft hat, sich vom AD vollständig ...

Windows Server
Probleme im AD am Außenstandort
gelöst Frage von emeriksWindows Server19 Kommentare

Hi, wir haben ein Problem mit AD und GPO am Außenstandort und ich stehe momentan mächtig auf dem Schlauch. ...

Microsoft
Netzlaufwerksordner Berechtigungen Speichern unter aus Programmen
Frage von ITler7Microsoft15 Kommentare

Moin, bin in ein neues Unternehmen eingetreten und habe die Anforderung bekommen Berechtigungen auf einige Ordner anzupassen, da bisher ...

CMS
Seltsame Joomla-Meldung auf unserer WebSite
Frage von Winfried-HHCMS14 Kommentare

Hallo in die Runde! Kennt sich jemand mit Joomla aus? Im Backend unserer WebSite lesen wir seit einiger Zeit ...