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

Text finden und gefiltert speichern

Frage Entwicklung Batch & Shell

Mitglied: ForgottenRealm

ForgottenRealm (Level 1) - Jetzt verbinden

10.01.2010 um 10:54 Uhr, 3655 Aufrufe, 4 Kommentare

Hi


Trotz reichlicher Suche finde ich keinen passenden Beitrag, darum frag ich mal direkt an.


Gegeben ist eine Textdatei mit der Ausgabe von net view > ...

Der Inhalt sieht also wie folgt aus;

Servername Beschreibung

\\PC1
\\PCMUH
\\KISTE
Der Befehl wurde erfolgreich ausgefhrt.


Jetzt möchte ich, dass die Computernamen (ohne die \\ davor) untereinander in eine weitere Textdatei ausgegeben werden.

Soll also so aussehen;

PC1
PCMUH
KISTE


Bisher habe ich es mit dieser Datei versucht;

set TEXTOK=Der Befehl wurde erfolgreich
set NETVIEWFILE=netview.txt
set COMPUTERS=\\*
set FINISHFILE=Computer.txt

net view > %NETVIEWFILE%

find "%TEXTOK%" "%NETVIEWFILE%" && (
for /f %%L IN (%NETVIEWFILE%) DO findstr "%COMPUTERS%" "%NETVIEWFILE%" > %FINISHFILE%
)

Ausgegeben wird dadurch der gesamte Inhalt der netview.txt, was ja nicht Sinn der Sache ist.

Diese Datei funktioniert dadurch logischerweise so nicht und ich komme aufgrund meines begrenzten Wissens bezüglich der for schleifen in Verbindung mit tokens ect. einfach nicht weiter.
Mitglied: bastla
10.01.2010 um 11:06 Uhr
Hallo ForgottenRealm!

Wenn Du keinen besonderen Bedarf an der Datei "netview.txt" hast, genügt eigentlich:
01.
@echo off & setlocal 
02.
set FINISHFILE=Computer.txt 
03.
del "%FINISHFILE%" 2>nul 
04.
for /f "delims=\" %%i in ('net view^|findstr "\\\\"') do >>"%FINISHFILE%" echo %%i
Grüße
bastla
Bitte warten ..
Mitglied: ForgottenRealm
10.01.2010 um 11:20 Uhr
Hi bastla

Funktioniert einwandfrei, vielen Dank!

Ich habe die Zeile noch etwas umgeändert;

for /f "delims=\" %%i in ('net view^|findstr "\\"') do echo %%i>>"%FINISHFILE%"

Geändert habe ich;

Statt \\\\ nur noch \\ - warum hast du vier mal \ gemacht?

Aus ">>"%FINISHFILE%" echo %%i" habe ich "echo %%i>>"%FINISHFILE%"" gemacht. - Warum ist die Echo Ausgabe in deiner Zeile in einer andren Reihenfolge?

So funktioniert diese auch noch. Gibt es trozdem deinen Fehler in meiner Zeile, obwohl diese auch so funktioniert?


Gibt es eine Internetseite, auf welcher Verständlich erklärt wird was;

for /*
delims
tokens

machen ?

Wie es mir scheint, werden Zeichen mit "delims=[zeichen]" im set (*) ignoriert, oder irre ich da?




[edit]

Mir ist noch etwas eingefallen, was ich benötigen könnte.

Wenn ich den Del Befehl aus dem Programm nehme, wird die einmal erstellte Liste bei der nächsten Ausführung erweitert und die Computernamen sind in dieser doppelt enthalten.

Gibt es eine Möglichkeit, die Datei vor dem Hinzufügen von weiteren Computernamen darauf zu prüfen, ob dieser Computername schon vorhanden ist und wenn ja, dass dieser nicht erneut eingetragen wird ?
Bitte warten ..
Mitglied: bastla
10.01.2010 um 13:43 Uhr
Hallo ForgottenRealm!
Statt \\\\ nur noch \\ - warum hast du vier mal \ gemacht?
Ist eigentlich nicht nötig, sondern nur eine exaktere Umsetzung der Suche - Erklärung: Da ich (bevorzugt) "findstr" verwende und dort im Suchbegriff mit "\" eine "Maskierung" erfolgt, bedeutet "\\", dass nach einem einfachen "\" zu suchen wäre (was ja aber auch genügen sollte) - um aber (genauer) nur Zeilen mit "\\" zu finden, muss dann eben jeder "\" verdoppelt werden ...
Aus ">>"%FINISHFILE%" echo %%i" habe ich "echo %%i>>"%FINISHFILE%"" gemacht. - Warum ist die Echo Ausgabe in deiner Zeile in einer andren Reihenfolge?
Einerseits eine Stilfrage, gelegentlich aber vorteilhaft, wenn zB ein
echo Aktueller Wert: 2>Datei.txt
ein anderes als das gewünschte Ergebnis bringt (hier allerdings ziemlich sicher egal, daher dürfte es mit Deiner Version keine Probleme geben).
Wie es mir scheint, werden Zeichen mit "delims=[zeichen]" im set (*) ignoriert, oder irre ich da?
"delims" ist von "delimiters" abgleitet und bedeutet daher "Trennzeichen" - anhand dieser Trennzeichen wird in einer "for /f"-Schleife die Zeile in einzelne "tokens" aufgeteilt - im konkreten Fall angenehmer Nebeneffekt: Das Trennzeichen ist nicht Bestandteil der einzelnen Teile ("tokens") und "verschwindet" daher. Noch ein kurzes Beispiel zur Veranschaulichung (direkt an der Kommandozeile zu verwenden, in einem Batch "%%a", "%%b" und "%%c" anstelle von "%a", "%b" und "%c"):
for /f "tokens=1-3 delims=." %a in ("%date%") do @echo %c %b %a
Gibt es eine Internetseite, auf welcher Verständlich erklärt wird ...
Vermutlich viele - ich kann Dir nur leider keine Adressen nennen (aber schau mal in die Linksammlung) , sondern nur auf die Onlinehilfe mit zB "for /?" bzw auf die vielen konkreten Batchbeispiele hier im Forum (in denen fast überall ein "for" vorkommt), verweisen.
Gibt es eine Möglichkeit, die Datei vor dem Hinzufügen von weiteren Computernamen darauf zu prüfen, ob dieser Computername schon vorhanden ist und wenn ja, dass dieser nicht erneut eingetragen wird ?
Etwa so (auf Basis der von Dir bevorzugten Schreibweise):
for /f "delims=\" %%i in ('net view^|findstr "\\"') do findstr /x "%%i" "%FINISHFILE%">nul || echo %%i>>"%FINISHFILE%"
Grüße
bastla
Bitte warten ..
Mitglied: ForgottenRealm
10.01.2010 um 14:04 Uhr
Nochmal vielen Dank

Funktioniert super.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batsch doppelte Zeile in in Text finden und eine löschen (10)

Frage von GNLen1 zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel VBA In Userform Maske Text nach Eingabe löschen (1)

Frage von kluthi69 zum Thema Microsoft Office ...

Netzwerkmanagement
Mehrere Lan-Verbindungen speichern (6)

Frage von SemJon zum Thema Netzwerkmanagement ...

JavaScript
PDF Formularfelder schützen nach Eingabe und Speichern (1)

Frage von Ohh33s zum Thema JavaScript ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Netzwerkprotokolle
PC erhalten nicht immer eine gültige IP (29)

Frage von Lieberwolf zum Thema Netzwerkprotokolle ...

Windows Systemdateien
Windows 7 und 10 herunterfahren Knopf mit Script belegen (21)

Frage von c-o-o-p-e-r92 zum Thema Windows Systemdateien ...

Router & Routing
über Vmware auf eine FritzBox mit IPv6 per VPN (16)

Frage von Zockervogel zum Thema Router & Routing ...