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 Problem bei Ausgabe der Folgezeile bei Abfrage aus .pro Datei

Mitglied: oeNkraD

oeNkraD (Level 1) - Jetzt verbinden

26.11.2010 um 08:48 Uhr, 3159 Aufrufe, 6 Kommentare

Hallo zusammen,

ich habe ein kleines Problem. Ich möchte mehrere .pro Datein nach bestimmten Einträgen durchsuchen und diese dann in einer CSV Tabelle ausgeben. Das klappt soweit schon ganz gut, sofern die entsprechenden Einträge, nach denen ich suche nur einmal vorkommen. Bei mehrfachnennung wird immer nur der letzte Beitrag ausgegeben... aber das ist hier nicht ganz das Problem...
Problem ist, dass wenn ein Eintrag mehrfach vorkommt dieser in den .pro Dateien selbst durch eine IF anweisung mehrere möglichkeiten der Wertzuweiung hat.
Ich möchte nun auch diese IF - Anweisung in die CSV Tabelle integieren.

Die .pro Datein haben folgenen Aufbau:

01.
LET Gruppe     = '01' 
02.
LET Stufe     = '3' 
03.
LET Spezifisch   = '021' 
04.
IF (X$Z.GE.2600) THEN 
05.
  LET Stat   = 'STATION2OHNE' 
06.
  ELSE 
07.
  LET Stat   = 'STATION2' 
08.
ENDIF
meine batch durchsucht schon alle Files und gibts sie wunderbar hübsch aus... ich bekomme auch eine konkrete Zeilenangabe, in der die Werte stehen, die ab und an durch IF - Anweisungen verschachtelt sind... Nun möchte ich einfach auf die vorgängerzeile zugreifen, und da liegt mein Problem:

01.
 for /f "delims=:" %%i in ('findstr /i /n "LET.Stat" %1') do set /a zeile=%%i-3>nul 
02.
 
03.
echo Zeile: %zeile%>>"%PFile%" 
04.
 
05.
for /f "delims=: tokens=1,*" %%a in ('findstr /i /n /b "%zeile%" %1') do echo Eintrag: %%a;%%b>>"%PFile%"
mir wird hier zwar die richtige Zeilennummer ausgegeben, aber der Inhalt der Zeile fehlt vollkommen, bzw. wird wohl nicht gefunden.

(%1 ist die aktuelle .pro Datei)



Dazu hab ich auch schon google und co. befragt, https://www.administrator.de/index.php?content=148293 das hinter dem Link versteckte ähnliche Problem mehrfach nahezu Zeichen für Zeichen eingetippt... aber es will einfach nicht funktionieren.

Sieht jemand von euch den Fehler, oder hat eine bessere Idee?
Mitglied: bastla
26.11.2010 um 09:53 Uhr
Hallo oeNkraD und willkommen im Forum!

Da ja in der Datei nicht die Zeilennummern stehen, müsste das eher so aussehen (ungetestet):
for /f "tokens=1* delims=:" %%a in ('findstr /n "^" %1^|findstr /b "%zeile%:"') do >>"%PFile%" echo Eintrag: %%a;%%b
Grüße
bastla

[Edit] Fehlendes "^" nachgetragen und Ausgabeumleitung vor dem "echo" platziert [/Edit]
Bitte warten ..
Mitglied: oeNkraD
26.11.2010 um 10:52 Uhr
Nun... außer der Tatsache, dass durch die kleinen Änderungen jetz der komplette Schleifenablauf für den Aufruf der einzelnen .pro Datein im ersten durchlauf abgebrochen wird und dennoch die gewünschte Zeile nicht ausgegeben wird, hat sich nichts verändert...


hier mal der komplette Code:


01.
@echo off & setlocal  
02.
set "Verz=D:\Neuer Ordner\Neuer Ordner\Neuer Ordner"  
03.
set "End=*.pro"  
04.
set "M50=LET.Stat"  
05.
 
06.
del "Ifsuche.txt"  
07.
for /f %%a in ('dir /b /on "%Verz%\%End%"') do call :ProcessFile "%Verz%\%%a"  
08.
 
09.
start "" "Ifsuche.txt" 
10.
 
11.
goto :eof  
12.
 
13.
:ProcessFile  
14.
set "FName=%~n1"   
15.
set "WDPL=%FName:~0,20%  
16.
set "PFile=Ifsuche.txt"  
17.
 
18.
 
19.
if exist "%PFile%" goto :WriteLine  
20.
 
21.
  
22.
:WriteLine 
23.
 
24.
echo WDPL_Bez;%WDPL%>>"%PFile%"  
25.
echo Station:>>"%PFile%"  
26.
for /f "delims=:" %%i in ('findstr /i /n "%M50%" %1') do set /a zeile=%%i>nul 
27.
 
28.
echo Zeile: %zeile%>>"%PFile%" 
29.
 
30.
for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" %1 | findstr /b "%zeile%:"') do echo Eintrag: %%a;%%b>>"%PFile%" 
31.
 
32.
echo.>>"%PFile%"
Bitte warten ..
Mitglied: bastla
26.11.2010 um 12:15 Uhr
Hallo oeNkraD!

Da fehlte leider eine Kleinigkeit (ist inzwischen auch oben nachgetragen) ...

Versuch es damit:
01.
@echo off & setlocal  
02.
set "Verz=D:\Neuer Ordner\Neuer Ordner\Neuer Ordner"  
03.
set "End=*.pro"  
04.
set "M50=LET.Stat"  
05.
set "PFile=Ifsuche.txt"  
06.
 
07.
del "%PFile%" 2>nul 
08.
for /f %%a in ('dir /b /on "%Verz%\%End%"') do call :ProcessFile "%Verz%\%%a"  
09.
 
10.
start "" "%PFile%" 
11.
goto :eof  
12.
 
13.
:ProcessFile  
14.
set "FName=%~n1"   
15.
set "WDPL=%FName:~0,20%  
16.
 
17.
>>"%PFile%" echo WDPL_Bez;%WDPL% 
18.
>>"%PFile%" echo Station: 
19.
for /f "delims=:" %%i in ('findstr /i /n "%M50%" %1') do set /a zeile=%%i >nul 
20.
>>"%PFile%" echo Zeile: %zeile% 
21.
for /f "tokens=1,* delims=:" %%a in ('findstr /n "^" %1^|findstr /b "%zeile%:"') do >>"%PFile%" echo Eintrag: %%a;%%b 
22.
>>"%PFile%" echo. 
23.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: oeNkraD
26.11.2010 um 12:26 Uhr
grandios!

Vielen Dank für die fixe Hilfe


Aber sage mir noch, bevor ich das als gelöst anklicke:

Warum wird das >>"%PFile%" vor das echo geschrieben?

Die Ausgabe funktionierte doch sonst auch uneingeschränkt... nur hier spontan nicht mehr *grübel*


Ach und wie kann man in: findstr /n "^" %1^|findstr /b "%zeile%:" das circumflex vor dem Pipesymbol interpretieren? Bzw. besser ausgedrück, wie kann man seine Bedeutung auf deutsch ausdrücken?


Gruß

Alex
Bitte warten ..
Mitglied: Biber
26.11.2010 um 12:37 Uhr
Moin DunkelNeuer,

willkommen im Forum.
Zitat von oeNkraD:
Ach und wie kann man in: findstr /n "^" %1^|findstr /b "%zeile%:" das circumflex vor dem Pipesymbol interpretieren?
Bzw. besser ausgedrück, wie kann man seine Bedeutung auf deutsch ausdrücken?
Das Caret gibt dem CMD-Interpreter den Tipp, das auf "^" folgende Zeichen als Literal (Buchstaben ohne Steuerzeichenbedeutung) aufzufassen.
Oder, wie es auch oft formuliert wird: das nachfolgende Zeichen wird "maskiert".
Nötig ist es in diesem Fall, weil ein CMD-Befehl mit einem darin enthaltenen Pipe-Symbol quasi als Parameter an eine weitere CMD-Instanz weitergereicht werden soll.

Grüße
Biber
Bitte warten ..
Mitglied: bastla
26.11.2010 um 12:52 Uhr
Hallo oeNkraD!
Warum wird das >>"%PFile%" vor das echo geschrieben?
Einerseits wird's (zumindest für mich) dadurch übersichtlicher, andererseits gibt es gelegentlich unschöne Effekte - die Zeile
echo %Zahl%>Datei.txt
würde zB bei einem Wert der Variablen %Zahl% von 2 die Meldung "ECHO ist eingeschaltet (ON)." und eine leere Datei.txt produzieren, da eben nach Variablenauflösung der Befehl
echo 2>Datei.txt
- also eine Umleitung von STDERR (=des Kanals für Fehlermeldungen) - ergäbe und so nur noch "echo" ausgeführt (und, da bei der Ausführung des Befehls kein Fehler auftritt, genau nix in die Datei.txt geschrieben) würde; bei vorangestellter Umleitung kann es nicht dazu kommen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft

Ausgabe einer CMD-Ausgabe in Datei kopieren

Frage von zimbomanMicrosoft4 Kommentare

Hallo zusammen! Wir haben ein Batch-Skript mit mehrere Abfragen und Ablaufroutinen. Es ist unser Vorinstallationsskript das auf Nachfrage diverse ...

Batch & Shell

Problem mit "username" abfrage in Batch Dateien

gelöst Frage von KriAITBatch & Shell5 Kommentare

Hallo, ich habe eine Batch-Datei erstellt in der ein Ordner auf dem Desktop erstellt werden soll. Der Batch soll ...

Batch & Shell

Powershell : DNS Abfrage : Ausgabe in Textbox

gelöst Frage von mcb1988Batch & Shell2 Kommentare

Hallo Zusammen, vorweg, ich bin ein totaler Powershell-Neuling. Ich möchte für meine Kollegen ein kurzes Script erstellen zur Abfrage ...

Linux

Ps Ausgabe in Datei umleiten

gelöst Frage von Matze1508Linux3 Kommentare

Hallo Zusammen, ich kann mir mit dem Befehl: ps -fC java einen output auf die Konsole ausgeben lassen. Allerdings ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 10 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 18 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit17 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...

Windows Installation
Kleines Büro - wie PCs einrichten? Domaincontroller sinnvoll?
Frage von Jonas42Windows Installation13 Kommentare

Hallo zusammen, ich überlege derzeit mal wieder, ob ich unsere IT ändern sollte. Es handelt sich um ein Ingenieurbüro ...