schreckinger 10 Geschrieben 23. März 2012 Melden Teilen Geschrieben 23. März 2012 Hallo Gemeinde. Also ich arbeite jetzt seit ca 2 wochen mit der Powershell hab mir mal einen kleines Backup Tool geschrieben. Als erster wird eine Eingabe vom Benutzer verlangt, dann wird geprüft ob der Ornder verfügbar ist. Dann wird hinkopiert und in ein Log File gespeichert. Wenn der Eingebene Ornder nicht vorhanden ist wird eine Fehler meldung ausgeben. Hier mal mein Tool :) #Backup Tool Clear-Host $date = Get-Date -Format d.MMMM.yyyy $var1 = Read-Host "Eingabe des Ornders der gesichert werden soll, achten Sie bitte auf die Richtige Schreibweise" $var1 = $env:USERPROFILE + '\' + $var1 if (Test-Path -Path $var1) { Write-Host "Die Eingabe war korrket." } else{ Write-Host "Der Angebene Ornder exestiert nicht bitte prüfen sie die Schreibweise und achten sie auf Groß/Klein Schreibun" Write-Host "Der Pfad zum Ornder ist nicht Korrekt:"$var1 } $var2 = Read-Host "Eingabe der Ziel Quelle für das Backup:" $var2 = $env:SystemDrive + '\' + $var2 if (Test-Path -Path $var2) { Write-Host "Die Eingabe war Korrekt." cd $var2 $var3 = mkdir $date -Force Copy-Item -Path $var1 -Destination $var3 -Recurse -Force | Write-Host "Kopiervorgang gestartet dies kann einige Zeit in Anspruch nehmen" $backup_log = Dir -Recurse $var2 | Sort-Object | out-File "$var2\backup_log.txt" Write-Host "Der Kopiervorgang abgeschlossen auf"$var2 Write-Host "Das Protokoll finden sie unter:"$var2 } else { Write-Host "Der Angebene Ornder exestiert nicht" Write-Host "Der Pfad zum Ornder von ihrer Eingabe:"$var2 } Aber ich wäre nicht der Schreckinger wenn ich nicht noch mehr machen möchte. Erstens bin ich offen für Verbesserungsvorschläge. Weiters möchte ich das Script noch erweitern. Ich möchte eine Grafische Oberfläche für das Tool bauen. Funktioniert das via Powershell ? Ich weiß das es vielleicht ein bisschen bald ist mit GUI zu Experimentieren daher mir die Powersehll selbst manchmal noch sehr komplieziert ist. Aber wie gesagt ich dachte auch nicht das ich es schaffe so weit in 2 Wochen zu kommen. :) Des weiteren stört mich noch ein bisschen das der Ornder auf C:\ liegen muss. Möchte das Script erweitern auf alle Laufwerke? Wäre es sinnvoll vorher einen Laufwerk check einbauen ob diese vorhanden sind ? Danke nochmals an alle die mir bisher zur Seite standen :) DANKE Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 23. März 2012 Melden Teilen Geschrieben 23. März 2012 Meine Tipps habe ich im letzten Thread schon gepostet. Du kannst "$var1 = $env:USERPROFILE + '\' + $var1" weglassen, dann kann der User jeden beliebigen Pfad eingeben auf auf einem anderen Laufwerk. Für Gui's gibt es z.B. PrimalForms: The only PowerShell GUI Editor Aber bevor ich mich an irgendwelche Guis wagen würde würde ich mir erst mal die Grundlagen besser aneignen. EDIT: $var3 = mkdir $date -Force Wo glaubst du wird der Ordner angelegt und wo willst du das er angelegt wird? Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 23. März 2012 Autor Melden Teilen Geschrieben 23. März 2012 Meine Tipps habe ich im letzten Thread schon gepostet.Du kannst "$var1 = $env:USERPROFILE + '\' + $var1" weglassen, dann kann der User jeden beliebigen Pfad eingeben auf auf einem anderen Laufwerk. Für Gui's gibt es z.B. PrimalForms: The only PowerShell GUI Editor Aber bevor ich mich an irgendwelche Guis wagen würde würde ich mir erst mal die Grundlagen besser aneignen. EDIT: $var3 = mkdir $date -Force Wo glaubst du wird der Ordner angelegt und wo willst du das er angelegt wird? hi ersten wieder mal ein FETTES Dank an Dukel :) freut mich immer wieder von dir zu hörn. Wenn das weglasse : "$var1 = $env:USERPROFILE + '\' + $var1" muss der user doch den Pfad komplett eingeben ? da sind wir wieder beim Problem meine User können das ned. Ich kann ned verlangen von denen das die z.b E:\Backup\files\new eingeben oder so .. aber naja das ist halt die Geschichte mit den Usern :) "$var3 = mkdir $date -Force" da leg ich mir einen Ornder mit dem Heutigen Datum im Ziel Ordner an. PrimalForms: The only PowerShell GUI Editor Ist das ein eigenständiges Programm oder wie kann ich das verstehen ? Wie gesagt besten Dank und ich wünsch dir einen erfolgreichen Tag Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 23. März 2012 Melden Teilen Geschrieben 23. März 2012 hi ersten wieder mal ein FETTES Dank an Dukel :) freut mich immer wieder von dir zu hörn. Wenn das weglasse : "$var1 = $env:USERPROFILE + '\' + $var1" muss der user doch den Pfad komplett eingeben ? da sind wir wieder beim Problem meine User können das ned. Ich kann ned verlangen von denen das die z.b E:\Backup\files\new eingeben oder so .. aber naja das ist halt die Geschichte mit den Usern :) Tja. Einen Tod muss man sterben. Entweder man definiert einen oder mehrere Pfade vor oder man vertraut seinen Anwendern. "$var3 = mkdir $date -Force" da leg ich mir einen Ornder mit dem Heutigen Datum im Ziel Ordner an. Nicht im Zielordner, sondern im aktuellen Ordner, von wo das Script aufgerufen wird. PrimalForms: The only PowerShell GUI Editor Ist das ein eigenständiges Programm oder wie kann ich das verstehen ? Wie gesagt besten Dank und ich wünsch dir einen erfolgreichen Tag Ja das ist ein eigenständiges Programm, mit dem man Guis bauen kann. Man kann diese auch manuell Scripten, aber das ist aufwendig und bedarf einiges an Know-How. Zitieren Link zu diesem Kommentar
schreckinger 10 Geschrieben 23. März 2012 Autor Melden Teilen Geschrieben 23. März 2012 Vertraun ist gut kontrolle besser :) aber ich überleg mir was ob ich das irgendwie lösen kann. cd $var2 $var3 = mkdir $date -Force Ich spring ja vorher mit Cd $var in den Ziel Ornder, und in diesem soll der dann einen Ornder mit Datum anlegen. sprich E:\Backup\23.03.2012 okay dann werd ich mir mal über wochenende das Programm reinziehen. und natürlich mein Wissen über die Powershell erweitern. Zitieren Link zu diesem Kommentar
Dukel 455 Geschrieben 23. März 2012 Melden Teilen Geschrieben 23. März 2012 Ok das cd habe ich übersehen. Ich mag das auch nicht, ich baue lieber die Pfade zusammen. Außerdem solltest du variablen anfangen sauber zu benennen. Oder weißt du nach 2 Wochen noch was $var20 für eine Funktion hat? Zitieren Link zu diesem Kommentar
lefg 276 Geschrieben 23. März 2012 Melden Teilen Geschrieben 23. März 2012 .....Außerdem solltest du variablen anfangen sauber zu benennen. Oder weißt du nach 2 Wochen noch was $var20 für eine Funktion hat? Vor vielen Jahren habe ich bei Nicklaus Wirth mal den Begriff "selbstdokumentierend" gelernt. :) Bei noch überschaubaren Code kann man die Variablen im Header dokumentieren beginnend mit # Zitieren Link zu diesem Kommentar
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.