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 Powershell - Textdatei einlesen und die ersten 5 Zeichen jeder Zeile durchsuchen

Mitglied: nubbeldupp

nubbeldupp (Level 1) - Jetzt verbinden

19.12.2011, aktualisiert 10:51 Uhr, 19736 Aufrufe, 3 Kommentare

Hallo,

ich habe folgendes Problem:

Ich möchte mit Powershell eine Textdatei auslesen und eine bestimmte Zeile ausgeben lassen.
Soweit habe ich das hin bekommen, jedoch wurde mir heute ein Fehler aufgezeigt, den ich so nicht bedacht habe.

Vorab einmal das derzeitige Script und die Textdatei:

01.
################################################################################## 
02.
# Auslesen einer Textdatei und Ausgabe eines Strings durch Eingabe eines Kürzels # 
03.
#                         Beispielformatierung der Text-Datei:                   # 
04.
#                              rofl;C:\rofl.bat                                  # 
05.
################################################################################## 
06.
 
07.
#Eingabeaufforderung für das Kürzel (z.B. rofl) 
08.
$datei = Read-Host "Gesuchte Datei?: " 
09.
 
10.
#Einlesen der Datei und rausfiltern der gesuchten Zeile, die das Kürzel enthält 
11.
$datgefunden = Get-Content .\test.txt | Select-String $datei 
12.
 
13.
#Aufspliten des Strings und entfernen des Kürzels 
14.
$datgeaendert = $datgefunden.ToString().Split(';')[1].Trim() 
15.
 
16.
#Ausgabe des Pfades 
17.
Write-Host " " 
18.
Write-Host $datgeaendert 
19.
Write-Host " "
Inhalt der Textdatei:
01.
omg;C:\rofl.txt 
02.
rofl;C:\rol.bat 
03.
lol;C:\Dokumente und Einstellungen\dummy\lol.exe 
04.
fu;D:\Programme\fu.txt 
05.
cfg;C:\WINDOWS\system32\test.cfg
Das Script hat funktioniert, bis die Zeile "omg;C:\rofl.txt" dazu gekommen ist... Nun findet es bei der suche nach "rofl" dementschrechend 2 Ergebnisse, ich möchte aber eigentlich nur die Zeile "rofl;C:\rol.bat" finden.

Deshalb suche ich nach einer Möglichkeit entweder nur die ersten 5 Zeichen jeder Zeile zu durchsuchen, oder falls möglich bis zum Semikolon.
Am Ende sollte wie bisher als Ergebniss z.B. "C:\rol.bat" ausgegeben werden.

Danke vorab für eure Bemühungen

Grüße

Mirko
Mitglied: Connor1980
19.12.2011 um 11:38 Uhr
Hi,

die ersten 5 Zeichen müssten mit ".Substring(5)" abzufragen sein. http://technet.microsoft.com/en-us/library/ee692804.aspx

Aus dem Bauch heraus ohne es getestet zu haben, würde ich das Select-String hinter die Aufsplittung setzen, da müsste genügen.

Grüße
Bitte warten ..
Mitglied: nubbeldupp
19.12.2011 um 12:18 Uhr
Hi Connor1980,

vorab nochmal danke für die Antwort.

Ich habe es jetzt nicht mit einem Substring gemacht und des "select-string" hinter die Aufsplittung zu setzen hat auch nicht zum Erfolg geführt.
Aber dank deines Links bin ich zu einer anderen Lösung gekommen.

Ich habe einfach eine foreach-Schleife eingebaut in der überprüft wird, ob am Anfang der Zeile das gesuchte Kürzel steht.
Dies erfordert immer noch ein gewisses Maß an Präzsion bei der Eingabe des Kürzels (Falls es z.B. test und test_neu gibt), aber das sollte dann kein Problem mehr darstellen.

01.
################################################################################## 
02.
# Auslesen einer Textdatei und Ausgabe eines Strings durch Eingabe eines Kürzels # 
03.
#                         Beispielformatierung der Text-Datei:                   # 
04.
#                              rofl;C:\rofl.bat                                  # 
05.
################################################################################## 
06.
 
07.
#Eingabeaufforderung für das Kürzel (z.B. rofl) 
08.
$datei = Read-Host "Gesuchte Datei?: " 
09.
 
10.
#Auslesen der Datei 
11.
$datgefunden = Get-Content .\test.txt 
12.
 
13.
#Leerzeile für die Übersichtlichkeit 
14.
Write-Host "" 
15.
 
16.
#Vergleich der Zeilen, ob am Anfang das gesuschte Kürzel steht und Ausgabe des Pfades 
17.
Foreach($line in $datgefunden){ 
18.
if($line.StartsWith($datei)){ 
19.
   $line.split(';')[1].Trim() 
20.
21.
22.
 
23.
#Leerzeile für die Übersichtlichkeit 
24.
Write-Host ""
Grüße

Mirko
Bitte warten ..
Mitglied: colinardo
19.12.2011 um 12:28 Uhr
01.
$datei = Read-Host "Gesuchte Datei?: "  
02.
foreach ($line in Get-Content -Path "c:\test.txt") 
03.
04.
    if ($line.Substring(0,$datei.length) -eq $datei) 
05.
06.
       Write-Host $line.Split(";")[1].Trim() 
07.
08.
}
Bitte warten ..
Ähnliche Inhalte
VB for Applications

Jede Zeile einer Textdatei bis zum Trennzeichen durchsuchen

gelöst Frage von karolsonVB for Applications6 Kommentare

Hallo an alle, Ich möchte mit VBA eine 50MB große Textdatei nach einer Zeichenkette durchsuchen und einige Begriffe aus ...

Ausbildung

Durchsuchen alle Zeilen einer Textdatei und die gleiche Zeilen herausfiltern und anzeigen

gelöst Frage von MihailAusbildung17 Kommentare

Guten Abend, Ich melde mich ernuet mit der Bitte mir falls möglich zu helfen. Ich muss aus einigen txt-Dateien ...

Ubuntu

Nach Zeilen aus der ersten Textdatei in der zweiten Textdatei suchen und diese dort entfernen

gelöst Frage von takitanoUbuntu3 Kommentare

Frohes Neues an alle! Ich habe 2 Textdateien. Die erste Textdatei beinhaltet Suchbegriffe, die ich in der zweiten Datei ...

Batch & Shell

Per Batch erste 15 Zeichen in jeder Zeile einer Textdatei lassen. Den Rest - löschen. Wie?

gelöst Frage von takitanoBatch & Shell9 Kommentare

Hallo an alle, ich habe folgendes Problem: in einer Texdatei habe ich ca. 60.000.000 Zeilen (453 MB) Jede Zeile ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 15 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 20 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...