schreckinger 10 Geschrieben 4. Juli 2012 Melden Geschrieben 4. Juli 2012 Hallo Gemeinde ich habe folgende Frage. Ich soll eine Datei entferen jedoch nur wenn diese nicht geändert wurde (gleiche Größe und Änderungszeitpunkt wie bei der Installation)! Wie kann ich das am besten machen. Daher meine Kenntnisse ziehmlich eingeschränkt sind in der Powershell hoffe ich hier auf Rasche Hillfe daher ich das für meinen Arbeitgeber brauche. ( Der Powershell Guru der Firma ist eine Woche krank und deswegen stehe ich auch unter Zeitdruck) Danke ich Vorraus für die Hilfe Lg Schreckinger Zitieren
Dukel 460 Geschrieben 4. Juli 2012 Melden Geschrieben 4. Juli 2012 Als Ansatz: (Get-Item .\filename.txt).CreationTime -eq (Get-Item .\filename.txt).LastWriteTime Zitieren
schreckinger 10 Geschrieben 16. Juli 2012 Autor Melden Geschrieben 16. Juli 2012 Hallo Dukel danke erstmals für die Antwort. Das Problem habe ich noch nicht gelöst daher es sich zum glück aufschieben hat lassen, doch möchte ich es jetzt probieren ich habe mal nach besten gewissen ein Script erstellt ?, dieses funktioniert jedoch nicht. If{(Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).CreationTime -eq (Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).LastWriteTime } else { Remove-item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS } Wie gesagt mein wissen mit der Powershell ist sehr begrenzt und daher auch meine Frage ob du mir das richtig stellen kannst bzw. Tipp geben kannst. Danke lg Zitieren
Dukel 460 Geschrieben 16. Juli 2012 Melden Geschrieben 16. Juli 2012 Gibt's auch ne Fehlermeldung? Hast du dir mal die Syntax zu if angeschaut? if(Bedingung){ Doing }else{ Doing } Bei dir sind die Klammern etwas durcheinander und ich würde, wenn es beim if nichts zu tun gibt die Bedingung drehen. Dann sparst du dir das else. Zitieren
schreckinger 10 Geschrieben 16. Juli 2012 Autor Melden Geschrieben 16. Juli 2012 Hallo Dukel wie meinst die Bedienung drehen ? Kannst du mir das an hand von dem Beispiel erklären. Ich muss nämlich nochmals zurück zu denn Basics, daher ich mir in der Powershell noch immer sehr schwer tue. werd mir die dokus nochmal durch lesen und üben üben üben Wie gesagt danke für deine Hilfe. Zitieren
Dukel 460 Geschrieben 16. Juli 2012 Melden Geschrieben 16. Juli 2012 Bsp: statt if($var -eq 1){ #Hier passiert nix }else{ #Hier passiert was foo() } sollte man folgendes machen: #Statt equal (eq) - not equal (ne) nutzen if($var -ne 1){ #Hier passiert was foo() } Zitieren
schreckinger 10 Geschrieben 16. Juli 2012 Autor Melden Geschrieben 16. Juli 2012 If{(Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).CreationTime -ne (Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).LastWriteTime } foo(){ Remove-item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS } ist das so dann richtig ? Zitieren
Dukel 460 Geschrieben 16. Juli 2012 Melden Geschrieben 16. Juli 2012 Nein. Deine Klammern sind immer noch falsch und das foo() ist nur eine Beispielfunktion von mir. Das kannst du weglassen. Zitieren
schreckinger 10 Geschrieben 16. Juli 2012 Autor Melden Geschrieben 16. Juli 2012 okay aber wie gehören die klammern ? If() {Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).CreationTime -ne (Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).LastWriteTime Remove-item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS } ich komm nicht dahinter ? ich brauche ja die runden und die geschwungen Klammern ? Zitieren
Dukel 460 Geschrieben 16. Juli 2012 Melden Geschrieben 16. Juli 2012 if(Bedingung){ Doing }else{ Doing } Das else brauchst du ja nicht: if(Bedingung){ Doing } Welches von deinen Zeilen ist die Bedingung und welches ist das Doing (wenn die Bedingung zutrifft)? Ersetze das jeweilige mit meinem Teil. Zitieren
schreckinger 10 Geschrieben 16. Juli 2012 Autor Melden Geschrieben 16. Juli 2012 hallo ich denke ja die ganze Zeit das die Bedienung der vergleich von der creation und der lastwrite time ist ? und wenn eine underschiedliche Zeit ist soll er es löschen ? Zitieren
Dukel 460 Geschrieben 16. Juli 2012 Melden Geschrieben 16. Juli 2012 Ja. Und nun musst du nur deine 2 Zeilen (ohne die ganzen falschen Klammern) in mein if Grundgerüst einfügen und dadurch meine Platzhalter ersetzen.. Zitieren
schreckinger 10 Geschrieben 16. Juli 2012 Autor Melden Geschrieben 16. Juli 2012 if(Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).CreationTime -eq (Get-Item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS).LastWriteTime){ Remove-item $env:PROGRAMDATA\CenturaSQL\Databases\SPVLOCAL\SPVLOCAL.DBS } ist es so richtig ? danke dukel für deine geduld mit mir Zitieren
Dukel 460 Geschrieben 16. Juli 2012 Melden Geschrieben 16. Juli 2012 Hast du das einmal ausgeführt? Eine klammer fehlt noch zwischen "if" und "Get-Item". if((Get-Item... Nach dem if kommt eine Klammer und das get-item wird ja umklammert, daher 2 Klammern. Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.