none
get-childitem RRS feed

  • Frage

  • Hallo,

    ich möchte mit get-childitem -LastWriteTime und get-date -uFormat "%d.%m.%Y"  das aktuelle Datum und das letzte Änderugnsdatum einer Datei vergleichen.

    Leider bekomme ich die Ausgabe über get-childtime nicht fomatiert.

    Gibt es hiezu eine Lösung?  Vielleicht auch komplett anders.

    Gruß

    Armin

    Freitag, 8. Oktober 2010 10:48

Antworten

  • Moin,

    ehrlich gesagt: Du gehst da falsch ran. Vergleich die Werte nicht als
    "Text" (der sich dann mit den Regionaleinstellungen auch noch ändert).

    In beiden Fällen handelt es sich um ein Objekt vom Typ "System.DateTime".

    (get-childitem | get-member und get-date | get-member).

    -> http://msdn.microsoft.com/en-us/library/system.datetime.aspx

    Diese beiden Object kannst Du quasi direkt vergleichen. Um das
    Ausgabeformat musst Du Dir hierbei keine Gedanken machen.

    Beispiel 1:

    $a = get-childitem "datei1.txt"
    $b = get-childitem "datei2.txt"

    if ($a.LastWriteTime -lt $b.LastWriteTime)
    {
        write-host "A ist älter als B"
    }

    Das geht natürlich auch mit get-date, ist aber ziemlich sinnlos, wenn Du
    alle Dateien mit "Jetzt" vergleichst. Es würde mich wundern, wenn dann
    jüngere dabei sind.

    Beispiel 2:

    $a = get-childitem "datei1.txt"
    $b = get-date

    if ($a.LastWriteTime -lt $b)
    {
        write-host "A ist älter als B"
    }

    Interessant ist aber, dass man bei System.DateTime (und damit auch bei
    "get-date") auch gleich rechnen kann.

    Beispiel 3:

    $a = get-childitem "datei1.txt"
    $b = (get-date).AddDays(-10)

    if ($a.LastWriteTime -lt $b)
    {
        write-host "A ist älter als 10 Tage"
    }

    Ja, es gibt wirklich nur "Add"-Funktionen, aber da diese auch negative
    Werte annehmen können, kann auch man subtrahieren - da muss man nur erst
    mal darauf kommen.

    Für die PowerShell muss man sich eines merken: Alles ist ein Objekt. Und
    Objekte kann man anders behandeln, als simple Textausgaben.


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    • Als Antwort markiert AucheinName Dienstag, 12. Oktober 2010 07:37
    Samstag, 9. Oktober 2010 10:01

Alle Antworten

  • Moin,

    ehrlich gesagt: Du gehst da falsch ran. Vergleich die Werte nicht als
    "Text" (der sich dann mit den Regionaleinstellungen auch noch ändert).

    In beiden Fällen handelt es sich um ein Objekt vom Typ "System.DateTime".

    (get-childitem | get-member und get-date | get-member).

    -> http://msdn.microsoft.com/en-us/library/system.datetime.aspx

    Diese beiden Object kannst Du quasi direkt vergleichen. Um das
    Ausgabeformat musst Du Dir hierbei keine Gedanken machen.

    Beispiel 1:

    $a = get-childitem "datei1.txt"
    $b = get-childitem "datei2.txt"

    if ($a.LastWriteTime -lt $b.LastWriteTime)
    {
        write-host "A ist älter als B"
    }

    Das geht natürlich auch mit get-date, ist aber ziemlich sinnlos, wenn Du
    alle Dateien mit "Jetzt" vergleichst. Es würde mich wundern, wenn dann
    jüngere dabei sind.

    Beispiel 2:

    $a = get-childitem "datei1.txt"
    $b = get-date

    if ($a.LastWriteTime -lt $b)
    {
        write-host "A ist älter als B"
    }

    Interessant ist aber, dass man bei System.DateTime (und damit auch bei
    "get-date") auch gleich rechnen kann.

    Beispiel 3:

    $a = get-childitem "datei1.txt"
    $b = (get-date).AddDays(-10)

    if ($a.LastWriteTime -lt $b)
    {
        write-host "A ist älter als 10 Tage"
    }

    Ja, es gibt wirklich nur "Add"-Funktionen, aber da diese auch negative
    Werte annehmen können, kann auch man subtrahieren - da muss man nur erst
    mal darauf kommen.

    Für die PowerShell muss man sich eines merken: Alles ist ein Objekt. Und
    Objekte kann man anders behandeln, als simple Textausgaben.


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    • Als Antwort markiert AucheinName Dienstag, 12. Oktober 2010 07:37
    Samstag, 9. Oktober 2010 10:01
  • Hallo Robert,

    vielen Dank, hat so funktioniert.

     

    Gruß

    Armin

    Dienstag, 12. Oktober 2010 06:52