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

Powershell in datei suchen und inhalt in neue datei speichern

Mitglied: micneu

micneu (Level 2) - Jetzt verbinden

18.02.2010, aktualisiert 21:38 Uhr, 11028 Aufrufe, 2 Kommentare

Hallo Leute,

ich habe ein problem, ich habe ca. 150 dateien mit ähnlichem inhalt in einem verzeichnis.

in diesen dateien soll es bestimmte inhalte ausgelesen werden und in einer neuen datei als .csv gespeichert werden.

hier ein aufbau einer datei:

01.
 
02.
Windows-IP-Konfiguration 
03.
 
04.
   Hostname  . . . . . . . . . . . . : msc-4 
05.
   Prim„res DNS-Suffix . . . . . . . :  
06.
   Knotentyp . . . . . . . . . . . . : Hybrid 
07.
   IP-Routing aktiviert  . . . . . . : Nein 
08.
   WINS-Proxy aktiviert  . . . . . . : Nein 
09.
 
10.
Ethernet-Adapter Bluetooth-Netzwerkverbindung: 
11.
 
12.
   Medienstatus. . . . . . . . . . . : Medium getrennt 
13.
   Verbindungsspezifisches DNS-Suffix:  
14.
   Beschreibung. . . . . . . . . . . : Bluetooth-Ger„t (PAN) 
15.
   Physikalische Adresse . . . . . . : 00-15-FF-19-19-15 
16.
   DHCP aktiviert. . . . . . . . . . : Ja 
17.
   Autokonfiguration aktiviert . . . : Ja 
18.
 
19.
Ethernet-Adapter LAN-Verbindung: 
20.
 
21.
   Verbindungsspezifisches DNS-Suffix:  
22.
   Beschreibung. . . . . . . . . . . : Realtek RTL8168C(P)/8111C(P) Family PCI-E Gigabit Ethernet NIC (NDIS 6.20) 
23.
   Physikalische Adresse . . . . . . : 00-FF-85-1B-AC-69 
24.
   DHCP aktiviert. . . . . . . . . . : Nein 
25.
   Autokonfiguration aktiviert . . . : Ja 
26.
   Verbindungslokale IPv6-Adresse  . : fe80::cdd7:c072:288:b94b%11(Bevorzugt)  
27.
   IPv4-Adresse  . . . . . . . . . . : 192.168.23.11(Bevorzugt)  
28.
   Subnetzmaske  . . . . . . . . . . : 255.255.255.0 
29.
   Standardgateway . . . . . . . . . : 192.168.23.1 
30.
   DHCPv6-IAID . . . . . . . . . . . : 234889605 
31.
   DHCPv6-Client-DUID. . . . . . . . : 00-01-00-01-13-0B-55-D5-00-21-85-1B-AC-69 
32.
   DNS-Server  . . . . . . . . . . . : 192.168.23.1 
33.
   NetBIOS ber TCP/IP . . . . . . . : Aktiviert 
34.
 
35.
Tunneladapter isatap.{25C5AFF5-770E-4378-8DAE-628EB1DB977E}: 
36.
 
37.
   Medienstatus. . . . . . . . . . . : Medium getrennt 
38.
   Verbindungsspezifisches DNS-Suffix:  
39.
   Beschreibung. . . . . . . . . . . : Microsoft-ISATAP-Adapter 
40.
   Physikalische Adresse . . . . . . : 00-00-00-00-00-00-00-E0 
41.
   DHCP aktiviert. . . . . . . . . . : Nein 
42.
   Autokonfiguration aktiviert . . . : Ja 
43.
 
44.
Tunneladapter LAN-Verbindung* 4: 
45.
 
46.
   Verbindungsspezifisches DNS-Suffix:  
47.
   Beschreibung. . . . . . . . . . . : Teredo Tunneling Pseudo-Interface 
48.
   Physikalische Adresse . . . . . . : 00-00-00-00-00-00-00-E0 
49.
   DHCP aktiviert. . . . . . . . . . : Nein 
50.
   Autokonfiguration aktiviert . . . : Ja 
51.
   IPv6-Adresse. . . . . . . . . . . : 2001:0:5ef5:73bc:c79:db4:abd1:ecab(Bevorzugt)  
52.
   Verbindungslokale IPv6-Adresse  . : fe80::c79:db4:abd1:ecab%13(Bevorzugt)  
53.
   Standardgateway . . . . . . . . . : :: 
54.
   NetBIOS ber TCP/IP . . . . . . . : Deaktiviert 
55.
 
56.
Tunneladapter isatap.{D76940D6-8ED4-440F-9153-58B2AAC1847F}: 
57.
 
58.
   Medienstatus. . . . . . . . . . . : Medium getrennt 
59.
   Verbindungsspezifisches DNS-Suffix:  
60.
   Beschreibung. . . . . . . . . . . : Microsoft-ISATAP-Adapter #2 
61.
   Physikalische Adresse . . . . . . : 00-00-00-00-00-00-00-E0 
62.
   DHCP aktiviert. . . . . . . . . . : Nein 
63.
   Autokonfiguration aktiviert . . . : Ja
ich möchte aus allen ethernet adaptern die mac-adresse, ip-adresse und den hostnamen
in einer .csv datei für jede datei eine zeile.
z. B.: IP;MAC;HOSTNAME
192.168.23.11;00-FF-85-1B-AC-69;msc-4

wie bekomme ich es in powershell hin diese daten
mit meinem code bekomme ich es noch nicht wirklich hin....
01.
$path = "C:\" 
02.
$endung = "*.txt" 
03.
Get-ChildItem $path -include $endung -Recurse | 
04.
Select-String -Pattern "Physikalische Adresse"
2. punkt wie bekomme ich es hin hat eine datei mehrere netzwerkkarten das jede NIC einen einzelnen eintrag in der
datei bekommt?

3. es ist nicht immer windows 7 oder vista, es können auch windows 200 und xp dabei sein...
also dort ist die datei etwas anderst

01.
Windows-IP-Konfiguration 
02.
 
03.
 
04.
 
05.
        Hostname. . . . . . . . . . . . . : MFC-PC-111 
06.
 
07.
        Primäres DNS-Suffix . . . . . . . :  
08.
 
09.
        Knotentyp . . . . . . . . . . . . : Unbekannt 
10.
 
11.
        IP-Routing aktiviert. . . . . . . : Nein 
12.
 
13.
        WINS-Proxy aktiviert. . . . . . . : Nein 
14.
 
15.
 
16.
 
17.
Ethernetadapter LAN-Verbindung 3: 
18.
 
19.
 
20.
 
21.
        Verbindungsspezifisches DNS-Suffix:  
22.
 
23.
        Beschreibung. . . . . . . . . . . : Broadcom NetLink (TM) Gigabit Ethernet 
24.
 
25.
        Physikalische Adresse . . . . . . : 00-19-99-31-97-AA 
26.
 
27.
        DHCP aktiviert. . . . . . . . . . : Nein 
28.
 
29.
        IP-Adresse. . . . . . . . . . . . : 192.168.1.111 
30.
 
31.
        Subnetzmaske. . . . . . . . . . . : 255.255.255.0 
32.
 
33.
        Standardgateway . . . . . . . . . : 192.168.1.200
gruß michael
Mitglied: 76109
19.02.2010 um 13:34 Uhr
Hallo Michael!

Powershell ist nicht mein Gebiet, aber alternativ kannst Du ja mal dieses VB-Skript testen (*.vbs).

Zur Funktion:
Alle Doppelpunkte + Leerzeichen durch einen Zeilenvorschub ersetzen
Anschließend die Text-Datei Zeilenvorschub-gesplittet in ein Array einlesen
Array durchsuchen nach: Hostname (Name = Array(i+1))
Array weiterdurchsuchen nach: Ethernet-Adapter LAN OR Ethernetadapter LAN
Wenn gefunden: Adapter = True
Array weiterdurchsuchen nach: Physikalische Adresse (Adresse = Array(i+1))
Array weiterdurchsuchen nach: IP-Adresse (Adresse = Array(i+1))
Variablen-Array prüfen Physikalische Adresse <> "" AND IP-Adresse <> ""
Array mit Trennzeichen (Semikolon) in Csv-Datei schreiben.

Quellcode kopieren und unter *.vbs abspeichern:
01.
Const TxtType = "txt" 
02.
Const TxtPath = "X:\Test" 
03.
Const CsvPath = "X:\Test\Test.Csv" 
04.
 
05.
Const Adapter1 = "Ethernet-Adapter LAN" 
06.
Const Adapter2 = "Ethernetadapter LAN" 
07.
 
08.
 
09.
Dim Fso, File, TxtFile, CsvFile, Adapter, Text, Token, i 
10.
 
11.
Set Fso = CreateObject("Scripting.FileSystemObject") 
12.
 
13.
Set CsvFile = Fso.CreateTextFile(CsvPath) 
14.
             
15.
For Each File In Fso.GetFolder(TxtPath).Files 
16.
    If LCase(Fso.GetExtensionName(File)) = LCase(TxtType) Then 
17.
        Set TxtFile = Fso.OpenTextFile(File.Path) 
18.
             
19.
        Text = Split(Replace(TxtFile.ReadAll, ": ", vbCrLf), vbCrLf):  TxtFile.Close 
20.
             
21.
        Adapter = False:  Token = Array("", "", "") 
22.
             
23.
        For i = 0 To UBound(Text) 
24.
            If InStr(1, Text(i), "Hostname", vbTextCompare) > 0 Then 
25.
                Token(2) = Text(i + 1) 
26.
            ElseIf Token(2) <> "" Then 
27.
                If InStr(1, Text(i), Adapter1, vbTextCompare) > 0 Or InStr(1, Text(i), Adapter2, vbTextCompare) > 0 Then 
28.
                    Adapter = True 
29.
                ElseIf Adapter Then 
30.
                    If Left(LTrim(Text(i)), 6) = "Physik" Then 
31.
                        Token(1) = Text(i + 1) 
32.
                    ElseIf Left(LTrim(Text(i)), 2) = "IP" Then 
33.
                        Token(0) = Split(Text(i + 1), "(")(0) 
34.
                    End If 
35.
                    If Token(0) <> "" And Token(1) <> "" Then CsvFile.WriteLine Join(Token, ";"):  Exit For 
36.
                End If 
37.
            End If 
38.
        Next 
39.
    End If 
40.
Next 
41.
CsvFile.Close
Gruß Dieter
Bitte warten ..
Mitglied: micneu
21.02.2010 um 12:29 Uhr
hallo leute habe jetzt ein ergebnis (langsam) und ein neues problem.
ich habe es soweit das es so funktioniert wie ich es haben wollte nur hatte ich nicht bedacht das auch einige computer
auch mehrere netzwerk schnittstellen haben und die würde ich auch gerne dem hostnamen zuordnen.

hier mein quelltext:

01.
#   ************************************************************** 
02.
#    einmal auf der powershell ausgeführt werden 
03.
#     "Set-ExecutionPolicy Unrestricted" 
04.
#   ************************************************************** 
05.
#     
06.
#     
07.
#   ************************************************************** 
08.
#   * Erstellt M.N. - POWERSHELL / Entwicklung   21.02.2010       
09.
#   ************************************************************** 
10.
# variablen deklarieren 
11.
$start = Get-Date 
12.
$ziel = "C:\Users\mne\Desktop\07_ips.txt" 
13.
$endung = "*.txt" 
14.
dir $ziel -filter $endung |  
15.
    ForEach-Object { 
16.
        echo "Datei: $_" 
17.
        $text = Get-Content $_.fullName 
18.
        #echo $text 
19.
        $IP = $text -match 'IPv4-Adresse|IP-Adresse' 
20.
        $IP = $IP -replace 'IPv4-Adresse.*\:\s|IP-Adresse.*\:\s','' 
21.
        $IP = $IP -replace '\(Bevorzugt\)\s','' 
22.
        $IP = $IP -replace '/s+',''         
23.
        echo "$IP;" 
24.
        $MAC = $text -match '(Physikalische Adresse).*([\d|A-F][\d|A-F]-[\d|A-F][\d|A-F]-[\d|A-F][\d|A-F]-[\d|A-F][\d|A-F]-[\d|A-F][\d|A-F]-[\d|A-F][\d|A-F])' 
25.
        $MAC = $MAC -replace 'Physikalische Adresse.*\:\s','' 
26.
        echo "$MAC;" 
27.
        $HOSTNAME = $text -match "(Hostname)" 
28.
        $HOSTNAME = $HOSTNAME -replace 'Hostname.*\:\s','' 
29.
        $HOSTNAME = $HOSTNAME -replace '/s+','' 
30.
        echo "$HOSTNAME" 
31.
        $info = "$IP;$MAC;$HOSTNAME" 
32.
        $info = $info.TrimStart() 
33.
        $info = $info.TrimEnd() 
34.
        $info = $info -replace '\s+','' 
35.
        echo $info 
36.
        Write-Output $info >> $ziel\test.csv 
37.
38.
$stop = Get-Date 
39.
$gelaufenezeit = ($stop - $start).TotalSeconds 
40.
echo "Auftrag nach $gelaufenezeit Sek. erledigt...."

gruß michael

ps: danke didi1954... ich möchte es in powershell umsetzen... werde jetzt nach und nach alle meine .vbs sachen in powershell umsetzen.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell Script um Inhalt von Dateien zu vergleichen
Frage von zamsi7Batch & Shell14 Kommentare

Hallo an alle, hoffe ich bin hier richtig Ich würde ein Powershell script benötigen, welche mir hilft Dateien in ...

Windows Server
PowerShell Inhalt einer csv Datei löschen
gelöst Frage von makaroniWindows Server4 Kommentare

Hallo zusammen, ich möchter gerne automatisiert über einen Task alle 10 Min eine CSV Datei via Powershell einlesen und ...

Batch & Shell
Datei an einem anderen Ort suchen - Powershell
gelöst Frage von internet2107Batch & Shell2 Kommentare

Hallo. Ich habe folgendes "Problem". Ich habe mir eine kleine UI gebaut, die auf Knopfdruck, also über Favoriten-Buttons bestimmte ...

Windows Server
Powershell logfile nach Datei suchen
Frage von krischeuWindows Server2 Kommentare

Hi, ich suche nach einer Möglichkeit, das weggespeicherte Logfile auszulesen und zwar nach Zugriff auf eine bestimmte Datei. Das ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 1 TagLinux

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 2 TagenTipps & 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 2 TagenSicherheit12 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 2 TagenSicherheit10 Kommentare

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

Heiß diskutierte Inhalte
Batch & Shell
Meltdown Microsoft Prüf Script - .zip Datei leider leer
gelöst Frage von MasterBlaster88Batch & Shell13 Kommentare

Hallo zusammen, ich patche gerade unsere Windows Server bzgl. der Meltdown Lücke. Patch vorhanden, Reg Keys gesetzt Um das ...

Batch & Shell
Shell-Skript - Syntax error: Unterminated quoted string
Frage von newit1Batch & Shell13 Kommentare

Hallo Ich schreibe ein Skript das eine CSV-Datei in eine mySQL Datenbank schieben soll. Bekomme nach start des Skrips ...

E-Mail
Erfahrungen mit hMailServer gesucht
Frage von it-fraggleE-Mail10 Kommentare

Hallo, meine neue Stelle möchte einen eigenen Mailserver. Ich als Linuxkind war direkt geistig mit Postfix dabei. Leider wollen ...

Entwicklung
VBS: alle PDF-Dateien in einem Ordner gleichzeitig öffnen
gelöst Frage von JuweeeEntwicklung9 Kommentare

Hallo, ich habe in deiner Ordnerstruktur (.\Tagesberichte\xx.18\) mehrere dynamische PDF-Formulare (mit LCD erstellt). Die Berichtsformulare sind im Layout alle ...