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

Mehrere Wörter ersetzen Powershell Skript

Frage Entwicklung Batch & Shell

Mitglied: Beginner01

Beginner01 (Level 1) - Jetzt verbinden

26.11.2014 um 14:50 Uhr, 1909 Aufrufe, 4 Kommentare

Hallo an die Gemeinde!

Ich habe eine Textdatei, in der ich mehrere verteilte Wörter mittels Windows Powershell ersetzen möchte.
Um ein Wort durch ein anderes Wort zu ersetzen, habe ich bereits einen Code gefunden (funktioniert):

clear-Host
$file = Get-ChildItem "D:\1\1*.txt"
foreach ($str in $file)
{
$content = Get-Content -path $str
$content | foreach {$_ -replace "abcdefg", "123456"} | Set-Content $str
}
write-Host "After replace `n"
$file


Wie müsste der Code umgeschrieben werden, um mehrere Wörter ersetzen zu können (z.B. für Wort 1= Ersatz: jefbh, für Wort 2= Ersatz: ffbhf, usw., Wortanzahl ist fortwährend unterschiedlich)?

Danke Euch schonmal! P.s.: Ich benötige es zwingend als Windows Powershell Skript.
Mitglied: colinardo
LÖSUNG 26.11.2014, aktualisiert um 17:19 Uhr
Moin Beginner01,
z.b. so: (in der Hashtable in der ersten Zeile legst du die zu ersetzenden Wortpaare fest, beliebig erweiterbar)
01.
$replacetable = @{"Wort1"="Ersatz1";"Wort2"="Ersatz2";"Wort3"="Ersatz4"} 
02.
gci "D:\1\1*.txt" | %{ 
03.
    $content = gc $_.Fullname 
04.
    $replacetable.GetEnumerator() | %{$content = $content.Replace($_.Key,$_.Value)} 
05.
    $content | set-content $_.Fullname 
06.
}
Grüße Uwe

p.s. wenn du noch die PS 2.0 einsetzt musst du Zeile 3 so schreiben
$content = gc $_.Fullname | out-string
Bitte warten ..
Mitglied: Beginner01
26.11.2014 um 17:19 Uhr
Super!!!! Es funktioniert, danke Uwe!!!!!!!!! LG
Bitte warten ..
Mitglied: Beginner01
26.11.2014 um 19:41 Uhr
Hallo Uwe, muss leider ein bischen unverschämt weiter nerven... das nächste Powershell Problem hat sich aufgetan...
ich müsste bestimmte Zeichen: " <p> </p> <P> in der textdatei, in welcher ebenfalls einige Wörter ausgetauscht werden sollen entfernen. Jetzt klappt das Ganze nicht mehr... Gibt es da einen Trick? LG
Bitte warten ..
Mitglied: colinardo
26.11.2014, aktualisiert 27.11.2014
Bei einer Hashtable darf der Key-Wert (also der vor dem Gleichheitszeichen) nicht doppelt vorkommen. Das ist hier jetzt dein Problem.

Zusätzlich Zeichen entfernen ist aber kein Problem mit RegularExpression Replacements. In der Schleife könntest du also noch folgenden Eintrag zwischen Zeile 4 und 5 hinzufügen, deine Beispiel-Einträge jetzt mal aufgegriffen:
$content = $content -replace '</?p>',''
Diese Zeile entfernt alle <p> und alle </p> Gross und Kleinschreibung ist bei Verwendung von -replace irrelevant. Möchtest du weitere Zeichen ersetzen, trennst du diese mit einem Pipe-Zeichen "|" voneinander, das bedeutet in Regex-Syntax ODER.
Beispiel:
$content = $content -replace '</?p>|bla|blub',''
WICHTIG: Bitte beachte aber das du hier mit Regular-Expression Syntax arbeitest und bestimmte Sonderzeichen wie ($,^,\,|,?,{,}.,(,),*,+) mit einem Vorangestellten Backslash "Escapen" musst !!!

Regular Expression Tutorial
"Dirty" ohne Regex geht es natürlich auch, aber das wird schnell unübersichtlich, und ist kein schöner Stil...
$content = $content.Replace('<p>','').Replace('</p>')
usw.

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
PowerShell Skript suchen und ersetzen in einer CSV
gelöst Frage von mayli01Batch & Shell3 Kommentare

Hallo Leute! Ich suche ein PowerShell Skript für eine CSV Datei. In der CSV gibt es eine Kopfzeile ("Artikel") ...

Batch & Shell
Powershell Ersetzen von Zahlenfolgen
gelöst Frage von Johnny-CGNBatch & Shell1 Kommentar

Liebe Administratoren, ich bekomme von einem Kunden eine CSV zur Verfügung gestellt, in der zu dessen internen Verwendung in ...

Batch & Shell
Powershell - Diskpart ersetzen funktioniert nicht
Frage von ooAlbertBatch & Shell4 Kommentare

Hi, ich hab einen Windows Server 2012 R2 und befasse mich da mit der Powershell. Jetzt wurde angepriesen, das ...

Batch & Shell
Powershell - In Textdatei suchen und ersetzen
gelöst Frage von Raaja89Batch & Shell5 Kommentare

Hallo Zusammen, ich habe einen Textdatei mit vielen aufeinander folgendenden Leerzeichen und wo an diversen Stellen Überschriften stehen. Ungefähr ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 TagenWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 2 TagenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless9 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Wieso kann ich den UPD 7000-9000 nicht freigeben?
Frage von Jayk0bRouter & Routing8 Kommentare

Router: Telekom W 723V Ports: UDP 7000-9000 Können nicht frei gegeben werden. Benutzgrund: Rocket League 7000 – 9000 UDP ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing8 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...