Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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

RegEx Powershell

Frage Entwicklung Batch & Shell

Mitglied: internet2107

internet2107 (Level 1) - Jetzt verbinden

19.11.2014, aktualisiert 15:06 Uhr, 899 Aufrufe, 6 Kommentare, 1 Danke

Hallo.

Aktuell werden bestimmte Dateien im Namen zerlegt.
Nun sind noch neue Dateien hinzugekommen.

Wir kann ich om RegEx Code beide verknüpfen ?

$Files:
"T101361_2 (Day 2) (2281695) (2_3) (19270236).dat"
"T100087-6_0705061_09032012(-7)_G.1_routine_101_1.dat"

01.
$file_new = $Files -replace '^([^\s\(]+).*', '$1' | select -unique
Als Ausgabe kommt:
T101361_2
T100087-6_0705061_09032012

Es soll aber so aussehen:

T101361_2
T100087-6

Wie kann ich also die beiden in einem Befehl verbinden ?

01.
$file_new = $Files -replace '^([^\s\(]+).*', '^([^_(]+).*', '$1' | select -unique
Danke.
Mitglied: Doskias
19.11.2014, aktualisiert um 15:06 Uhr
Und wieder eine ungenaue Aufgabenstellung

Wenn du "Nur" die ersten 9 zeichen brauchst (wonach es in dem kurzen Beispiel aussieht), dann mach doch einfach ein rename und werf alles nach dem 9.zeichen weg.

Wäre das auch eine Lösung?
Bitte warten ..
Mitglied: internet2107
19.11.2014 um 15:08 Uhr
Hallo.

Ja und nein. Das Problem ist, dass vorne auch 10 oder 11 oder 8 Zeichen stehen könnten.
Bitte warten ..
Mitglied: Doskias
19.11.2014 um 15:15 Uhr
Ok, und wovon ist das abhängig. Nach dem ersten Lesen hätte Ich Klammer und Unterstrich vermutet, aber die erste Datei hat Klammer und Unterstrich, und es wird erst ab der Klammer umbenannt. Klar das ganze hängt vermutlich vom Rest der Datei ab.

Vermutlich hilft eine Prüfung ab dem 7ten Zeichen, wann ein gewissen Zeichen kommt und ab da wird abgeschnitten?

Ich sag mal so: Ich habe dein problem und die beiden Skripte verstanden, aber was ich noch nicht verstanden habe ist, wann du wie viele Zeichen benötigst. Wie heißt es so schön: Ich brauche mehr Details
Bitte warten ..
Mitglied: internet2107
19.11.2014 um 15:25 Uhr
OK, ich glaube das wäre eine Alternative

01.
if ($file_old -match '^([^_(]+).*') { 
02.
        $file_new = $file_old -replace '^([^_(]+).*', '$1' | select -unique 
03.
        write-host $file_new 
04.
05.
 
06.
if ($file_old -match '^([^\s\(]+).*') { 
07.
        $file_new = $file_old -replace '^([^\s\(]+).*', '$1' | select -unique 
08.
        write-host $file_new 
09.
10.
 
@ToGuIT

Im Grunde soll alles abgeschnitten werden, was nach der Zahl hinter dem (-) oder (_) ist.
Also wie gesagt:
T101361_2 ....alles anders muss weg
T100087-6 ....alles anders muss weg
Bitte warten ..
Mitglied: colinardo
LÖSUNG 19.11.2014, aktualisiert um 15:38 Uhr
Zitat von internet2107:
T101361_2 ....alles anders muss weg
T100087-6 ....alles anders muss weg
'^([^\s\-_]+?[-_].).*','$1'
Grüße Uwe
Bitte warten ..
Mitglied: internet2107
19.11.2014 um 15:38 Uhr
Wie IMMER, DANKE Uwe !!!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Regex mag nicht (3)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Regex - An die Experten (4)

Frage von internet2107 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell RegEx geht beim match aber beim replace nicht (4)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Batch & Shell
gelöst RegEx in M3U (4)

Frage von mguenth83 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows 10
Seekrank bei Windows 10 (17)

Frage von zauberer123 zum Thema Windows 10 ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...

Windows 10
Windows 10 Fall Creators Update Fehler (13)

Frage von ZeroCool23 zum Thema Windows 10 ...