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

verschiedene Zeilen aus .txt entfernen

Frage Entwicklung Batch & Shell

Mitglied: waldgnarf

waldgnarf (Level 1) - Jetzt verbinden

03.02.2008, aktualisiert 04.02.2008, 4152 Aufrufe, 8 Kommentare

Hi, hab Schwierigkeiten bei der ausfilterung von Diensten.
Dienste die bei der Standart Windows-Installation antiviert sind sollen aus der Text Datei gelöscht werden.
Also so das ich in der Datei sehe wenn welche dazugekommen sind.

01.
@echo off & setlocal enableDelayedExpansion 
02.
 
03.
net start>temp.txt 
04.
 
05.
set A="Folgende Windows-Dienste sind gestartet:" 
06.
set B="Designs" 
07.
... 
08.
 
09.
for %%I in (temp.txt) do type ('find /v %A%, %B%') >OUT.txt 
10.
del temp.txt
Gruß waldgnarf
Mitglied: bastla
03.02.2008 um 17:37 Uhr
Hallo waldgnarf!

Einmal abgesehen davon, dass "type" durch "echo" zu ersetzen wäre und es auch ohne (diese) "for"-Schleife ginge, also etwa
01.
findstr /v /c:%A% temp.txt | findstr /v /c:%B% >out.txt
ist Dein Ziel doch offensichtlich der Vergleich der zu verschiedenen Zeitpunkten laufenden Dienste - daher vielleicht eher so:
01.
@echo off & setlocal 
02.
::Zeitpunkt 1 
03.
net start>temp.txt 
04.
... 
05.
 
06.
... 
07.
::Zeitpunkt2 
08.
net start|findstr /v /g:temp.txt>diff.txt
Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
03.02.2008 um 20:21 Uhr
Danke, aber ich wollte den script im Autostart laufen lassen. Ich kenne ja alle Standart Dienste, und wenn welche dazu kommen sind die aktiviert und ich habe noch den Script der mich zusammen mit dem gesuchten informiert wenn ein neuer Dienst aufgetaucht ist.

01.
for /F "tokens=1 delims= " %%L in (temp056.txt) do @echo %%L>>temp057.txt 
02.
for /f %%I in ('dir /b temp057.txt') do findstr . %%I>>"LDU.txt" 
03.
del temp*.txt 
04.
 
05.
set Dfilter=LDU.txt 
06.
set Dbytes=0 
07.
for /R %pfad% %%f in (%Dfilter%) do ( 
08.
    echo %%f - %%~zfBytes 
09.
    set /A Dbytes=bytes+%%~zf 
10.
11.
if not "%Dbytes%"=="0" goto :WEITER 
12.
del "LDU.txt" 
13.
:WEITER 
14.
if exist "LDU.txt" do call "LDU.txt"
So seh ich immer beim Neustart wenn ein neuer Dienst installiert wurde.
Bitte warten ..
Mitglied: bastla
03.02.2008 um 21:18 Uhr
Hallo waldgnarf!

ich wollte den script im Autostart laufen lassen
Was spräche denn dagegen? Alle zusätzlich zu den in "temp.txt" aufscheinenden "Standard-Diensten" ausgeführten Services kannst Du mit der Zeile "net start|findstr /v /g:temp.txt>diff.txt" heraussuchen und in eine Datei schreiben lassen.

Die zum Vergleich erforderliche "temp.txt" musst Du nur einmal erstellen (und ggf editieren) - der "Zeitpunkt1" in meinem Beispiel wäre also zB unmittelbar, nachdem Du einen Rechner vollständig installliert hast. Du musst nur dafür sorgen, das "temp.txt" alle Zeilen einer "net start"-Ausgabe enthält, die Du nicht sehen willst.
Übrigens: Was der von Dir gepostete (stellenweise etwas abenteuerlich wirkende) Batch mit dem Thema zu tun hat, kann ich beim besten Willen nicht erkennen ...

Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
04.02.2008 um 00:28 Uhr
Ich hab so viele Datein und verliere schon bei der Funktion den überblick. Darum wollte ich alles in einer schreiben.
Das geht bei dieser version immer so weiter mit den tempdatein weil es ja viel Zeilen zum rausfiltern sind.
01.
type temp00.txt|find /v "Folgende Windows-Dienste sind gestartet:" >temp01.txt
Die letze Datei wird zwar umbenannt aber und die andern gelöscht aber wenn eine temp024 z.b. fehlt klappt es schon nichtmer.
Deshalb wollte ich das per set =..... machen und im nachhinein die Variablen verarbeiten.
Die Datei befindet sich auch in anderen Ordnern denn sie hat noch andere Funktionen und muss zum abgleichen wenn ich was ändere (was oft passiert) auch oft umkopiert werden.
Wenn ich noch ne temp erstelle hab ich fast mehr arbeit als mir die Sache einbringt.
Die Datei überprüft am Ende ob eine LDU existiert es existieren auch andere ähnliche txt Datein, und wenn sie nicht gelöscht wurden wird die Batch umbenannt und zum korrigieren geöffnet.

Gruß waldgnarf
Bitte warten ..
Mitglied: bastla
04.02.2008 um 00:43 Uhr
Hallo waldgnarf!

Der Sinn des Schalters "/g:" bei "findstr" ist, dass Du die von Dir skizzierte Folge einzelner Filtervorgänge zusammenfassen kannst, indem Du eben in der nach "/g:" angegebenen Datei alle Kriterien zeilenweise anführst.

Sogar, wenn Du diese Datei nicht "mitschleppen" willst, sondern sie aus dem Batch heraus mit einer Folge von "echo"-Befehlen erzeugst, ist mE die dann nur einmalig erforderliche Verwendung von "findstr" und die Ausgabe in nur eine Ergebnisdatei vor allem weniger fehleranfällig ...

Grüße
bastla
Bitte warten ..
Mitglied: waldgnarf
04.02.2008 um 09:13 Uhr
Das hier ist echt ein tolles Forum mit super Hilfen
Vielen Dank nochmal =)

Gruß waldgnarf
Bitte warten ..
Mitglied: waldgnarf
04.02.2008 um 11:00 Uhr
Moin,

ok werd ich machen

Gruß waldgnarf
Bitte warten ..
Mitglied: Biber
04.02.2008 um 11:27 Uhr
Moin waldgnarf,

Du musst das Ampersand ("&") maskieren, weil dieses Zeichen im Batch ein Steuerzeichen mit spezieller Bedeutung ist.

Die Maskierung erfolgt mit Caret ("^") - so würde es gehen (Demo am CMD-Prompt}:
01.
>echo Plaque ^& Pray 
02.
Plaque & Pray
Grüße
Biber
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Einzelne Zeilen in txt Datei speichern und auslesen (7)

Frage von noah1400 zum Thema Batch & Shell ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

E-Business
gelöst EService für Rechnungsversand - verschiedene Input- und Outputformate (1)

Frage von Excaliburx zum Thema E-Business ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...