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

Frage Entwicklung Batch & Shell

GELÖST

Sprung in for Schleife

Mitglied: Pantherstyle

Pantherstyle (Level 1) - Jetzt verbinden

30.03.2009, aktualisiert 12:40 Uhr, 3233 Aufrufe, 6 Kommentare

Hallo,
ich hoffe, dass es okay ist wenn ich zwei Fragen parallel einstelle (2 unterschiedliche Batches und Probleme). Ich habe folgenden Code:
Mit
01.
DOS
01.
::Überprüfen auf Dateiinhalt 
02.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
03.
for /F "skip=2 tokens=4* delims=\" %%i IN (%HELP_PATH%\filterindex.txt) DO ( 
04.
echo %%i 
05.
findstr /L /C:"$Id" %SEARCH_PATH%\%%i 
06.
if ERRORLEVEL 1 echo %%i >> %HELP_PATH%\IDtreffer.txt 
07.
if ERRORLEVEL 1 goto weiter 
08.
 
09.
findstr /L /C:"$Author" %SEARCH_PATH%\%%i 
10.
if ERRORLEVEL 1 echo %%i >> %HELP_PATH%\IDtreffer.txt 
11.
if ERRORLEVEL 1 goto weiter 
12.
 
13.
findstr /L /C:"$URL" %SEARCH_PATH%\%%i 
14.
if ERRORLEVEL 1 echo %%i >> %HELP_PATH%\IDtreffer.txt 
15.
if ERRORLEVEL 1 goto weiter 
16.
 
17.
findstr /L /C:"$LastChangedRevision" %SEARCH_PATH%\%%i 
18.
if ERRORLEVEL 1 echo %%i >> %HELP_PATH%\IDtreffer.txt 
19.
if ERRORLEVEL 1 goto weiter 
20.
 
21.
findstr /L /C:"* $LastChangedDate" %SEARCH_PATH%\%%i 
22.
if ERRORLEVEL 1 echo %%i >> %HELP_PATH%\IDtreffer.txt 
23.
if ERRORLEVEL 1 goto weiter 
24.
 
25.
findstr /L /C:"* $LastChangedBy" %SEARCH_PATH%\%%i 
26.
if ERRORLEVEL 1 echo %%i >> %HELP_PATH%\IDtreffer.txt 
27.
if ERRORLEVEL 1 goto weiter 
28.
:weiter 
29.
)
Der Quelltext soll bewirken, dass die Dateien eines Verzeichnisses durchsucht werden, ob eines oder mehrere der folgenden Textelemente fehlen:
$Id
$Author
$URL
$LastChangedRevision
etc.

Wenn ich das ganze ohne die goto Anweisung ausführenlasse, gibt er mir zwar alle gefundenen Dateien korrekt aus, allerdings die meisten doppelt und dreifach (da ja auch mehrere Bestandteile fehlen könnten). Kann ich das mit dem goto irgendwie korrekt umsetzen. Oder als If Verkettung oder ganz anders?
Mitglied: SlainteMhath
30.03.2009 um 12:52 Uhr
Hi,

versuchs mal so:

01.
for /f.... do ( 
02.
se flag=0 
03.
... 
04.
findstr /L /C:"* ..... 
05.
if ERRORLEVEL 1 set flag=1 
06.
 
07.
findstr /L /C:"* ..... 
08.
... 
09.
 
10.
if "%flag%"=="1" echo %%i >> ... 
11.
)
lg,
Slainte
Bitte warten ..
Mitglied: 60730
30.03.2009 um 12:53 Uhr
Servus,

warum läßt du /C hinter Findstr nicht weg und fragst alle "Bestandteile" in einer Findstr Zeile ab?
Würde den Code kürzer machen und du hättest dein "Problem" mit den doppelTreffern dabei gelöst.

Gruß
Bitte warten ..
Mitglied: Pantherstyle
30.03.2009 um 12:56 Uhr
Ich versteh den Ansatz nicht ganz und außerdem finde ich den se Befehl nicht. Falls du set meinst, ich habe es noch nicht hinbekommen innerhalb einer For-Schleife einer Variablen einen anderen Wert zuzuweisen. Sorry. Falls du es anders meinst bitte korrigieren!
Bitte warten ..
Mitglied: Pantherstyle
30.03.2009 um 13:15 Uhr
Ich habe den Code jetzt einmal ausgetauscht, allerdings liefert er mir nicht die gewünschten Ergebnisse.

01.
::Überprüfen auf Dateiinhalt 
02.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 
03.
for /F "skip=2 tokens=4* delims=\" %%i IN (%HELP_PATH%\filterindex.txt) DO
04.
echo %%i 
05.
findstr /L :"$Id $Author $URL $LastChangedRevision $LastChangedDate $LastChangedBy" %SEARCH_PATH%\%%i 
06.
if ERRORLEVEL 1 echo %%i >> %HELP_PATH%\IDtreffer.txt 
07.
)
Ich habe 5 Falsche und 2 Richtige Dateien. Die Richtigen (also korrekten) Dateien gibt er mir wie gewünscht nicht aus.

Beispiel für Ausgegebene Datei:

oisanoi
aodvn
sjkdncöoi
uhv$
aiusdfb
  • $
$Id

Beispiel für eine Datei die ausgegeben werden sollte aber nicht wurde:
  • $Id$
      • $URL$
  • $LastChangedRevision$
  • $LastChangedDate$
  • $LastChangedBy$

Beispiel für Datei die zurecht nicht ausgegeben wurde:
    • $Id$
    • $Author$
    • $URL$
    • $LastChangedRevision$
    • $LastChangedDate$
    • $LastChangedBy$

Ziel ist es ALLE Dateien zu finden, die auch nur eine der 6 Varianten NICHT enthalten. Warum gibt er also so unlogische Treffer aus?
Bitte warten ..
Mitglied: bastla
30.03.2009 um 15:20 Uhr
Hallo Pantherstyle!

Da "$" in einem "findstr"-Suchbegriff für "Zeilenende" steht, muss es "maskiert" werden. Versuch es einmal mit folgender Zeile:
findstr /L :"\$Id \$Author \$URL \$LastChangedRevision \$LastChangedDate \$LastChangedBy" %SEARCH_PATH%\%%i
Grüße
bastla
Bitte warten ..
Mitglied: Pantherstyle
30.03.2009 um 15:34 Uhr
Supi ich freue mich hat soweit super geklappt ich danke!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Microsoft Office
Access 2013 riesiger Sprung einer AutoID
Frage von evolutionMicrosoft Office3 Kommentare

Moin hab hier gerade ein seltsames Verhalten einer Access Tabelle die eigentlich nur 42 Datensätze hat. Als ich einen ...

Microsoft Office
Vereinfachen einer Schleife
Frage von Jens1975Microsoft Office1 Kommentar

Hallo, ich bin neu und versuche mich jetzt mit VBA Ich möchte die Funktion Autofill durch eine Schleife ersetzen. ...

Entwicklung
PowerShell - Schleifen
gelöst Frage von 119785Entwicklung8 Kommentare

Hallo Leute, ich habe hier eine Aufgabe und brauche mal einen kleinen Tip. Entweder habe ich eine Denkbloacke oder ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 16 StundenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit25 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...

Windows 10
Automatische daten kopieren, USB zu USB unter Win10 im Hintergrund
Frage von DerEisigeWindows 1016 Kommentare

Hallo Leute, ich bin auf der Suche nach einem Skript, dass von einem USB Stick automatisch nach dem einstecken ...