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: if Abfrage in foreach Schleife

Mitglied: LuceDeCiello

LuceDeCiello (Level 1) - Jetzt verbinden

12.02.2018 um 14:07 Uhr, 290 Aufrufe, 5 Kommentare, 2 Danke

Hallo,
ich würde mich sehr freuen wenn ihr mir etwas auf die Sprünge helfen könntet.

Ich habe hier folgendes .txt File

Anrede;Nachname;Vorname;Mitarbeiternummer;Eintritt_1;Geburtsdatum;Mandant;Abrechnungskreis;Personalnummer;Austrittsdatum;Dienstgruppe;Kostenstelle
Frau;xxx;xxx;1310100000022;01.12.1998;19.08.1973;1310;100;000022;;01;161001
Frau;xxx;xxx;1310100000101;01.01.1999;02.09.1969;1310;100;000101;;01;161004
Frau;xxx;xxx;1310100000484;15.02.1990;29.09.1954;1310;100;000484;01.02.2018;07;190200

Dieses .txt möchte automatisiert bearbeiten, das eine Spalte "Eintritt_2" hinzugefügt wird mit dem Wert "01.02.2018". Dann soll ein Prüfung erfolgen.

Wenn Eintritt_1 >= Eintritt_2;
Dann Eintritt_2 = Eintritt_1;

Bis jetzt habe ich das ganze als csv umgewandelt und dann "bearbeitet" aber ich komme nicht irgendwie nicht weiter. Folgend mein Skript:


$csv = Import-CSV 'c:\test\mal.csv' -delimiter ";"
$csv | add-member -MemberType NoteProperty -Name "Eintritt" -Value "01.02.2018" -Force
$csv | Export-CSV 'c:\test\mal_fertig.csv' -NoType -delimiter ";" -Encoding default

foreach ($temp in $csv.Eintritt)
{
if ($csv.Eintrittsdatum -ge $csv.Eintitt)
{
$csv.Eintritt = $csv.Eintrittsdatum
}
}

Dann wird diese Meldung generiert

he property 'Eintritt' cannot be found on this object. Verify that the property exists and can be set.
At C:\test\Eintrit_neu.ps1:14 char:17

$csv.Eintritt = $csv.Eintrittsdatum

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidOperation: ( [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException

The property 'Eintritt' cannot be found on this object. Verify that the property exists and can be set.
At C:\test\Eintrit_neu.ps1:14 char:17

$csv.Eintritt = $csv.Eintrittsdatum

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidOperation: ( [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException

The property 'Eintritt' cannot be found on this object. Verify that the property exists and can be set.
At C:\test\Eintrit_neu.ps1:14 char:17

$csv.Eintritt = $csv.Eintrittsdatum

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidOperation: ( [], RuntimeException
+ FullyQualifiedErrorId : PropertyAssignmentException


ICH BIN FÜR JEDE HILFE DANKBAR.... ICH SEHE DEN WALD VOR LAUTER BÄUMEN NICHT MEHR

Mitglied: 135333
12.02.2018 um 14:19 Uhr
01.
$csv = Import-CSV 'c:\test\mal.csv' -delimiter ";"  
02.
$csv | add-member -MemberType NoteProperty -Name "Eintritt_2" -Value (get-date "01.02.2018") -Force 
03.
$csv | %{ 
04.
    If ((get-date $_.Eintritt_1) -gt $_.Eintritt_2){ 
05.
        $_.Eintritt_2 = $_.Eintritt_1 
06.
07.
08.
$csv | Export-CSV 'c:\test\mal_fertig.csv' -NoType -delimiter ";" -Encoding default
Bitte warten ..
Mitglied: LuceDeCiello
12.02.2018 um 14:38 Uhr
Hey super.... das funktioniert bereits viel besser !!!

Allerdings habe ich jetzt bei der Ausgabe in der Spalte "Eintritt_2" 00.00.00 mit drinnen, da sollte nur das Datum stehen. Und wie bekomme ich denn die vielen Anführungszeichen weg?

Der fertige Datensatz sollte so aussehen:

Anrede;Nachname;Vorname;Mitarbeiternummer;Eintrittsdatum;Geburtsdatum;Mandant;Abrechnungskreis;Personalnummer;Austrittsdatum;Dienstgruppe;Kostenstelle;Eintritt_2
Frau;XXX;XXX;1310100000022;01.03.2018;19.08.1973;1310;100;000022;;01;161001;01.02.2018

aktuell sieht es aber so aus:

"Anrede";"Nachname";"Vorname";"Mitarbeiternummer";"Eintrittsdatum";"Geburtsdatum";"Mandant";"Abrechnungskreis";"Personalnummer";"Austrittsdatum";"Dienstgruppe";"Kostenstelle";"Eintritt_2"
"Frau";"XXX";"XXX";"1310100000022";"01.03.2018";"19.08.1973";"1310";"100";"000022";"";"01";"161001";"01.02.2018 00:00:00"
"Frau";"XXX";"XXX";"1310100000101";"01.01.1999";"02.09.1969";"1310";"100";"000101";"";"01";"161004";"01.02.2018 00:00:00"
"Frau";"XXX";"XXX";"1310100000484";"15.02.1990";"29.09.1954";"1310";"100";"000484";"01.02.2018";"07";"190200";"01.02.2018 00:00:00"
Bitte warten ..
Mitglied: LuceDeCiello
12.02.2018 um 14:55 Uhr
Ich sehe gerade, das dort ebenfalls noch einige Fehlermeldungen generiert werden ???

Get-Date : Cannot bind parameter 'Date' to the target. Exception setting "Date": "Object reference not set to an instance of an object."
At C:\test\Eintrit_neu.ps1:9 char:19

If ((get-date $_.Eintritt_1) -gt $_.Eintritt_2){

~~~~~~~~~~~~~

+ CategoryInfo : WriteError: ( [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand

Get-Date : Cannot bind parameter 'Date' to the target. Exception setting "Date": "Object reference not set to an instance of an object."
At C:\test\Eintrit_neu.ps1:9 char:19

If ((get-date $_.Eintritt_1) -gt $_.Eintritt_2){

~~~~~~~~~~~~~

+ CategoryInfo : WriteError: ( [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand

Get-Date : Cannot bind parameter 'Date' to the target. Exception setting "Date": "Object reference not set to an instance of an object."
At C:\test\Eintrit_neu.ps1:9 char:19

If ((get-date $_.Eintritt_1) -gt $_.Eintritt_2){

~~~~~~~~~~~~~

+ CategoryInfo : WriteError: ( [Get-Date], ParameterBindingException
+ FullyQualifiedErrorId : ParameterBindingFailed,Microsoft.PowerShell.Commands.GetDateCommand
Bitte warten ..
Mitglied: 135333
12.02.2018, aktualisiert um 15:52 Uhr
Zitat von LuceDeCiello:
Allerdings habe ich jetzt bei der Ausgabe in der Spalte "Eintritt_2" 00.00.00 mit drinnen, da sollte nur das Datum stehen.
Einfach das Format ändern mit -F Parameter
Und wie bekomme ich denn die vielen Anführungszeichen weg?
Die machen nichts, bei einer CSV werden die Weg interpretiert.
Ansonsten an ConvertTo-CSV pipen und dann mit -replace die Anführungszeichen killen.
Ich sehe gerade, das dort ebenfalls noch einige Fehlermeldungen generiert werden ???
Du musst prüfen ob in den Zellen wirklich Datumswerte stehen, die Fehler kommen weil die Felder bei dir leer sein können ...
Bitte warten ..
Mitglied: LuceDeCiello
12.02.2018 um 16:11 Uhr
Danke .... hat super geklappt !!!!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell ForEach in ForEach
gelöst Frage von BuggerBatch & Shell4 Kommentare

Hallo, ich habe folgenden Code: Leider funktioniert das Script nur, wenn nur ein User in TestGruppe ist. Sobald mehrere ...

Batch & Shell

Powershell: Foreach-Schleife, feststellen ob aktuelles Element das letzte in der Schleife ist

gelöst Frage von MartinADBatch & Shell2 Kommentare

Hallo, ich habe eine Foreach-Schleife in Powershell. Ich möchte in der ForEach-Schleife feststellen, ob das aktuelle Element das letzte ...

Batch & Shell

Powershell Foreach Key in Section

gelöst Frage von MarabuntaBatch & Shell2 Kommentare

Ich will Skriptseitig die ausgelesenen Versionen mit Soll-Versionen aus einer Ini-Datei abgleichen, nur wie prüfe ich so viele unterschiedliche ...

Entwicklung

PowerShell - Schleifen

gelöst Frage von 119785Entwicklung8 Kommentare

Hallo Leute, ich habe hier eine Aufgabe und brauche mal einen kleinen Tip. Entweder habe ich eine Denkbloacke oder ...

Neue Wissensbeiträge
Backup

2016 - Restore mit WBAdmin - iSCSI Device als Sicherungsziel

Erfahrungsbericht von Henere vor 10 StundenBackup1 Kommentar

Servus zusammen, was mich eben einige graue Haare gekostet hat Server 2016. Ich habe meinem Server eine weitere M2 ...

Humor (lol)
(Part num your Hacked phone. +XX XXXXXX5200)
Erfahrungsbericht von Henere vor 2 TagenHumor (lol)5 Kommentare

Mein Handy hat aber ne ganz andere Endnummer. Muss ich mir jetzt Sorgen machen ? :-) Vielleicht betrifft es ...

Exchange Server

Letztes Update für Exchange 2016 CU9 war in gewisser Weise destruktiv

Erfahrungsbericht von DerWoWusste vor 2 TagenExchange Server8 Kommentare

Kurzer Erfahrungsbericht zu Exchange2016-KB4340731-x64 Der Exchangeserver hat wie gewöhnlich versucht, es in der Nacht automatisch zu installieren - abgesehen ...

Erkennung und -Abwehr

Neue Sicherheitslücke Foreshadow (L1TF) gefährdet fast alle Intel-Prozessoren

Information von Frank vor 3 TagenErkennung und -Abwehr3 Kommentare

Eine neue Sicherheitslücke, genannt Foreshadow (alias L1TF) wurde auf der Usenix Security 18 von einem Team internationaler Experten veröffentlicht. ...

Heiß diskutierte Inhalte
Netzwerke
Netzwerk-Architektur mit VLANs
Frage von niLuxxNetzwerke43 Kommentare

Liebe Community, Ich hätte eine kurze Frage an euch. Ich werde in Kürze das Netzwerk unserer (sehr) kleinen Firma ...

Netzwerke
SSH - Wieso werde ich nach VPN Verbindung rausgeschmissen?
Frage von VernoxVernaxNetzwerke10 Kommentare

Hallo, ich habe es endlich geschafft mein Handy mit einer VPN Verbindung an meinen Router anzuschließen. Nach der Login ...

Microsoft
Ist es möglich ein reines Volume C Datenbackup in eine Hyper-V VM zu konvertieren?
Frage von Frank84Microsoft10 Kommentare

Hallo zusammen, ich habe hier ein Backup vorliegen, das ausschließlich das komplette C:\ Volume eines physischen Server 2012 enthält. ...

Windows Server
Freigaben per Default nur für Domänen-Benutzer
Frage von tierwoWindows Server8 Kommentare

Hallo gibt es eine Möglichkeit, einen Server 2016 so zu konfigurieren (z.B. per GPO), dass Freigaben die erstellt werden ...