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

Batch - Probleme beim findstr, muss man das maskieren?

Frage Entwicklung Batch & Shell

Mitglied: bioperiodik

bioperiodik (Level 1) - Jetzt verbinden

29.07.2010, aktualisiert 14:10 Uhr, 6694 Aufrufe, 10 Kommentare

Guten Morgen an alle,

Ich bin gerade dabei die Proxyeinstellungen unserer Clients auszulesen, für den IE ist das ja auch kein problem, allerdings bereitet mir das ganze bei Mozilla Firefox einige Probleme.

Die Proxyeinstellungen von Firefox sind in der Datei %USERPROFILE%\Anwendungsdaten\Mozilla\Firefox\Profiles\* unter prefs.js gespeichert.

Ich bin jetzt soweit das ich die prefs.js in eine Variable speicher und diese dann auswerten will.

Dafür benutze ich folgende Zeilen:
01.
set ausgabe="C:\Freigabe\prefs.txt" 
02.
 
03.
@for /F "tokens=2 delims= " %%i in ('type %ausgabe% ^| findstr /i "proxy.http"') do set "var=%%i" 
04.
 
05.
echo %var% 
06.
 
als Ausgabe erhalte ich jetzt allerdings einmal die IP und einmal den Port, ich hätte allerdings gerne nur die IP.

Darum würde ich gernen nach "network.proxy.http" suchen.
Das funktionier aber nicht, weil er scheinbar Probleme mit den "" hat. Muss ich diese ausmaskieren? Wenn ja wie?

Oder kennt von euch jemand einen einfacheren Weg das ganze zu bewerkstellingen?

Danke im Vorraus
Mit freundlichen Grüßen Sebastian
Mitglied: paulepank
29.07.2010 um 09:42 Uhr
Hallo Sebastian,

Das funktionier aber nicht, weil
Für diese Fehlerbeschreibung kannst du dich schon mal grinsend zurücklehnen.
Damit hast du deinen Teil zur Lösung deines Problems getan.

Falls hier jemand fragt, welche Ausgabe die Batch dir mitteilt, betrachte die Frage als reine Provokation.

Ob "proxy.http" oder "network.proxy.http" ist scheißegal. Das Suchergebnis ist immer gleich.
Also suche z.B. nach "http_port" und schon hast das gewünschte.

TIP1: der Feldtrenner Leerzeichen ist Standard und muß nicht extra angegeben werden.
TIP2: sollten dich die Klammer und das Semikolon in %var% auch noch stören, ein
01.
echo %var:~0,-2%
ist hier hilfreich.

cu paulepank
Bitte warten ..
Mitglied: bioperiodik
29.07.2010 um 11:46 Uhr
Hallo paulepank,

Danke für die Antwort!

Es gibt keine Ausgabe, die Batch wird einfach geschlossen.

Ich denke ich hab mein Problem schon deutlich geschildert, ist wohl falsch rübergekommen:

Momentan such ich nur nach proxy.http, ich will aber nach "network.proxy.http" suchen.

im code würde das dann so aussehen:

bisher:
01.
@for /F "tokens=2 delims= " %%i in ('type %ausgabe% ^| findstr /i "proxy.http"') do set "var=%%i" 
ich will aber das hier suchen:
01.
@for /F "tokens=2 delims= " %%i in ('type %ausgabe% ^| findstr /i ""network.proxy.http""') do set "var=%%i" 
aber offenbar hat er ein Problem mit den "" im findstr, darum die Frage ob ich da etwas maskieren muss bzw. ob das überhaupt funktioniert.
Bitte warten ..
Mitglied: Biber
29.07.2010 um 12:15 Uhr
Moin bioperodik,

vielleicht beantwortet das deine Frage bzw. deine richtige Vermutung:
[Anmerkung: Demo am CMD-Prompt. das ">" am Anfang einer Zeile NICHT mit eingeben, das ist die 2.Zeile meines Prompts.]
01.
(=12:12:18  D:\temp=) 
02.
>echo "Test1">d:\temp\test4findstr.txt 
03.
 
04.
(=12:12:36  D:\temp=) 
05.
>echo Test1 ohne Anführungszeichen>>d:\temp\test4findstr.txt 
06.
 
07.
(=12:12:47  D:\temp=) 
08.
>findstr /i "Test1" test4findstr.txt 
09.
"Test1" 
10.
Test1 ohne Anführungszeichen 
11.
 
12.
## beide Zeilen werden ausgegeben - nicht erwünschtes Resultat 
13.
 
14.
 
15.
(=12:12:52  D:\temp=) 
16.
>findstr /i ""Test1"" test4findstr.txt 
17.
"Test1" 
18.
Test1 ohne Anführungszeichen 
19.
 
20.
## beide Zeilen werden ausgegeben - nicht erwünschtes Resultat 
21.
 
22.
 
23.
(=12:13:00  D:\temp=) 
24.
>findstr /i "\"Test1\"" test4findstr.txt 
25.
"Test1" 
26.
 
27.
## nur Zeile "Test" (in Anführungszeichen) wird ausgegeben
Die letzte FindStr-Variante wäre für dich die richtige.

Grüße
Biber
Bitte warten ..
Mitglied: paulepank
29.07.2010 um 13:14 Uhr
Hallo,
Es gibt keine Ausgabe, die Batch wird einfach geschlossen.
Dann solltest du die Batch in der cmd starten um etwas zu sehen und / oder den Befehl pause einfügen und das @ entfernen.

Selbst wenn ich die Zeile so eingebe, wie du es geschrieben hast findet die korrekte Ausgabe statt.
Ich geh jetzt mal davon aus, daß die prefs.txt inhaltlich gleich der prefs.js ist.
Der Begriff wird immer gefunden. Das Problem liegt m.E. woanders

@Biber
hier muß nichts maskiert werden.

cu paulepank
Bitte warten ..
Mitglied: paulepank
29.07.2010 um 13:22 Uhr
Beispiel:
Inhalt von prefs.txt
...
user_pref("network.proxy.http", "ich.bin.der.proxy");
user_pref("network.proxy.http_port", 4711);
...

01.
set ausgabe="d:\prefs.txt" 
02.
for /F "tokens=2 delims= " %%i in ('type %ausgabe% ^| findstr /i ""network.proxy.http""') do set "var=%%i" 
03.
echo %var:~0,-2% 
04.
pause
Ausgabe:
C:\>set "var="ich.bin.der.proxy");"
C:\>set "var=4711);"
C:\>echo 4711
4711
C:\>pause
Drücken Sie eine beliebige Taste . . .


cu paulepank
Bitte warten ..
Mitglied: bioperiodik
29.07.2010 um 13:25 Uhr
Danke Biber und paulepank für eure Hilfe!

Der Tipp von Biber hat geholfe, wenn ich die " mit \" maskier läuft es problemlos :D

Danke an paulepank für den Tipp mit echo %var:~0,-2%

Die Batch macht jetzt genau was ich will!

Hier nochmal der Vollständige Code um die Proxy IP aus Firefox auszulesen:

01.
 
02.
for /d %%i in ("%USERPROFILE%\Anwendungsdaten\Mozilla\Firefox\Profiles\*") do set "pfad=%%i" 
03.
echo %pfad% 
04.
set ausgabe="%pfad%\prefs.js" 
05.
@for /F "tokens=2 delims= " %%i in ('type %ausgabe% ^| findstr /i "\"network.proxy.http\""') do set "var=%%i" 
06.
echo %var:~1,-3% 
07.
 
Bitte warten ..
Mitglied: Biber
29.07.2010 um 13:27 Uhr
Moin paulepank,

doch.
01.
>findstr /i ""network.proxy.http"" prefs.txt 
02.
"network.proxy.http_port", 4711 
03.
"network.proxy.http", "ich.bin.der.proxy" 
04.
 
05.
(=13:25:37  D:\temp=) 
06.
>findstr /i "\"network.proxy.http"\" prefs.txt 
07.
"network.proxy.http", "ich.bin.der.proxy" 
08.
 
09.
(=13:25:47  D:\temp=)
Bei deiner Demo bleibt nach der FOR-Anweisung nur die LETZTE Zeile erhalten.
Dreh doch die Zeilen-Reihenfolge mal um in deiner prefs.txt...

Grüße
Biber
Bitte warten ..
Mitglied: paulepank
29.07.2010 um 13:38 Uhr
Hallo Biber,

jaein,
bei meinen Testdaten ist die Reihenfolge anders.
unabhängig davon werden beide Zeilen gefunden (auch ohne Maskierung), es wird nur die falsche ausgewertet.

Deshalb habe ich ja Eingangs geschrieben er soll gleich nach http_port suchen.
Dann ist es eindeutig auch ohne Maskierung und die Reihenfolge der Zeilen ist auch wurscht.

cu paulpank
Bitte warten ..
Mitglied: paulepank
29.07.2010 um 13:46 Uhr
Hallo,

auch wenn schon gelöst:

Zitat oben:
ich hätte allerdings gerne nur den Port.
Zitat drüber:
Hier nochmal der Vollständige Code um die Proxy IP aus Firefox auszulesen

ja, was wolltest du jetzt ?
Bitte warten ..
Mitglied: bioperiodik
29.07.2010 um 14:11 Uhr
Servus,

Oh, dass ist mir garnicht aufgefallen! War wohl ein Flüchtigkeitsfehler!

Ich will die IP, sonst hätte der Code ja funktioniert Sorry!!!

Jetzt läuft das Ganze auf jedenfall einwandfrei und es werden die Proxy-IPs unsrer Clienten ausgelesen!

Danke nochmal für die Hilfe!
Und sorry für die Verwirrung *schäm*
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch-Probleme bei Verschlüsselung

Frage von Jonas1806 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Probleme mit Dateipfaden in for-Schleife (1)

Frage von Jonas1806 zum Thema Batch & Shell ...

Batch & Shell
gelöst Per Batch Winrar entpacken - Probleme bei Pfad (7)

Frage von Concurve zum Thema Batch & Shell ...

Batch & Shell
gelöst Probleme bei der Funktionsweise einer im Hintergrund laufenden Batch (5)

Frage von duderu zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...