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, 3635 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
VB for Applications
gelöst VBA-Makro verschwindet nach Speichern (5)

Frage von lupi1989 zum Thema VB for Applications ...

Microsoft Office
gelöst Wie kann man die Standard-Schriftart bei einfügen von Text in Word 2013 festlegen? (3)

Frage von Rene1976 zum Thema Microsoft Office ...

Windows 10
Citrix Receiver - Benutzernamen speichern (2)

Frage von hendrik.vondankbahr zum Thema Windows 10 ...

Batch & Shell
gelöst Dateien zusammenführen inkl. finden von doppelten Einträgen (3)

Frage von miczar zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...