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

Eigenheiten von FINDSTR

Frage Entwicklung Batch & Shell

Mitglied: connecthor

connecthor (Level 1) - Jetzt verbinden

10.05.2010, aktualisiert 15:56 Uhr, 6092 Aufrufe, 6 Kommentare

ich habe ein problemchen mit dem FINDSTR. gibt es ne möglichkeit eine längere zeichenfolge zu vergleichen, die sonderzeichen enthält??

mein script soweit:

set "von=pref("mailnews.database.global.indexer.enabled", true);"
set "wo=c:\test\all-thunderbird.js"
findstr /C:"von" "%wo%"&& goto exit

kann es sein, dass ich was falsch mache mit der behandlung der anführungszeichen???

Bastla gab mir folgendes beispiel:


Versuch es mit folgender Schreibweise:
set "von=pref(\"mailnews\.database\.global\.indexer\.enabled\", true);"


kommt FINDSTR nicht mit sonderzeichen klar?? ich habe jetzt die sonderzeichen (" mit . ersetzt. das läuft soweit. sieht aber komisch aus.

bitte um weitere vorschläge.

Danke
Mitglied: bastla
10.05.2010 um 16:12 Uhr
Auch Dir kein "Hallo" ...

Hast Du es schon mit einer richtigen Variablenschreibweise versucht?
findstr /C:"%von%" "%wo%"&& goto exit 
bastla
Bitte warten ..
Mitglied: connecthor
11.05.2010 um 10:26 Uhr
sorry..

dann "doppeltes" HALLO

ja, ist mir ein fehler beim kopieren unterlaufen, da ich ca 1 milliarde testscripts habe


natürlich habe ich das "von" mit "%von%" probiert...
Bitte warten ..
Mitglied: Biber
12.05.2010 um 16:29 Uhr
Moin connecthor,

ist ein bisschen schwierig, deinen Fehler einzugrenzen ohne weitere Details..

Ein proof-of-concept von bastlas Vorschlägen am CMD-Prompt führt jedenfalls - wie zu erwarten war - zum Erfolg.
01.
>set "wo=d:\temp\testprefs.txt" 
02.
 
03.
>set "von=pref(\"mailnews.database.global.indexer.enabled\", true);" 
04.
 
05.
>findstr /n /C:"%von%" "%wo%" 
06.
5:set "von=pref("mailnews.database.global.indexer.enabled", true);"
[ in der Datei "d:\temp\testprefs.txt" steht eine Copy & Paste-Kopie deines Beitrags; dein Suchstring wird in Zeile 5 gefunden]

Also bitte poste noch einmal
  • deinen Komplett-Batch in Code-Tags
  • und die Original-zu-findende-Suchzeile aus der c:\test\all-thunderbird.js [+je zwei Zeilen davor/danach] ebenfalls in Code-Tags
...denn dann muss dort ein Tippfehler drin sein.

es sei denn, du hast Recht und deine FindStr.exe ist kaputt....

Grüße
Biber
Bitte warten ..
Mitglied: connecthor
21.05.2010 um 19:02 Uhr
Hallo,
meine datei sieht jetzt SO aus

01.
@Echo off & SETLOCAL enabledelayedexpansion 
02.
title TB3 Indexer aus 
03.
cls 
04.
set /a Nr=99 
05.
set "pfad=c:\progies\pstools" 
06.
set "von=pref(.mailnews.database.global.indexer.enabled...true)." 
07.
set "Von1=pref("mailnews.database.global.indexer.enabled", true);" 
08.
 
09.
set "nach=pref("mailnews.database.global.indexer.enabled", false);" 
10.
 
11.
:loop 
12.
 
13.
set /a Nr+=1 
14.
if %nr%==1665 goto exit 
15.
set "wer=\\%Nr%\C$\Programme\Mozilla Thunderbird\defaults\pref\all-thunderbird.js" 
16.
ping -n 1 %Nr% >NUL 
17.
if %errorlevel%==1 echo Computer %Nr% ist aus!! 
18.
if %errorlevel%==1 goto loop 
19.
 
20.
if NOT EXIST "%wer%" goto loop 
21.
 
22.
findstr "%von%" "%wer%">NUL&& goto :do 
23.
 
24.
echo Rechner %Nr% hat kein TB3 oder die richtigen Einstellungen 
25.
 
26.
goto loop 
27.
 
28.
:do 
29.
if NOT EXIST c:\temp md c:\temp 
30.
set "t=c:\temp\text.tmp" 
31.
if exist "%t%" del "%t%" 
32.
 
33.
echo Bearbeite Rechner %Nr%!! 
34.
for /f "usebackq delims=" %%i in ("%wer%") do set "Line=%%i" & set Line=!Line:%von1%=%nach%! & echo !Line!>>"%t%" 
35.
move /y "%t%" "%wer%" 
36.
echo TB3 auf Rechner %Nr% geändert >> C:\PROGIES\txt\TB3.txt 
37.
goto loop 
38.
 
39.
:exit 
40.
exit
mir missfällt lediglich, dass die " im findstr mit der variable von zeile 6 (ich find noch raus wie man das hier darstellt) durch punkte ersetzt werden müssen, da der string sonst nicht gefunden wird.
welche sonderzeichen muss ich denn durch wildcards ersetzen? oder hebeln backslashes die sematik aus???

danke für eure zeit


[Edit Biber] Codetags ergänzt. [/Edit]
Bitte warten ..
Mitglied: bastla
21.05.2010 um 19:39 Uhr
Hallo connecthor!

Du kannst Dich also nicht zu
set "von=pref(\"mailnews\.database\.global\.indexer\.enabled\", true);"
entschließen?
welche sonderzeichen muss ich denn durch wildcards ersetzen?
Eigentlich keine - es gibt nur einige Zeichen (findest Du am Ende der Onlinehilfe "findstr /?"), die innerhalb von Suchstrings besondere Bedeutung haben und deshalb mit "\" maskiert werden müssen.

Außerdem zu beachten: Wenn im Suchstring Leerzeichen enthalten sind, benötigst Du "/c:", da ansonsten die durch die Leerzeichen getrennten Bestandteile jeweils als eigener (mit "oder" verknüpfter) Suchbegriff gelten ...

Grüße
bastla
Bitte warten ..
Mitglied: connecthor
25.05.2010 um 09:14 Uhr
GuMo Bastla,

vielen dank für deinen tipp.

dann muss ich ja die "."(punkte) nicht maskieren, da diese ja als wildcard dienen.

super, dann weiß ich wieder ein wenig mehr.

bis zum nächsten mal

THNX
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
gelöst Findstr - code für schwieriger Abfrage gesucht (9)

Frage von reissaus73 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mal eine neue Art von Abfrage mit findstr (8)

Frage von DaTobsn zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...