#scriptpfad ermitteln function Get-ScriptDirectory { $Invocation = (Get-Variable MyInvocation -Scope 1).Value Split-Path $Invocation.MyCommand.Path } $scriptpfad = Get-ScriptDirectory #restic variablen ### pfad zu restic, wird mit & $pfad aufgerufen $pfad="C:\Users\mg\Desktop\NextCloud\Programme\restic\bin\restic.exe" ### repository $repository="\\fileserver.grote.lan\Backup\restic" ### passwordfile $passwordfile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\password.txt" ### exclude file $excludefile="C:\Users\mg\Desktop\NextCloud\Programme\restic\config\exclude.txt" #ausgabe der varriablen und einfärben der werte mit -foregroundcolor #`n ist zeilenumbruch write-host "====================================" write-host "Repository: " write-host -ForegroundColor Yellow $repository write-host "Pfad zu Restic: " write-host -ForegroundColor Yellow $pfad write-host "Passworddatei: " write-host -ForegroundColor Yellow $passwordfile write-host "====================================" write-host -ForegroundColor Red "Auschlüsse: " get-content $excludefile write-host "====================================`n`n" do { write-host "====================================" write-host "Befehl eingeben: " Write-Host " 1 = Check`n 2 = Forget(Standard...)`n 3 = Prune`n 4 = Snapshots anzeigen`n 5 = Befehl absetzen`n 6 = unlock`n 7 = Befehlszeile ausgeben" Write-Host " 8 = Restore - komplett`n 9 = Restore - nur bestimmte Daten`n10 = Restore - alles bis auf bestimmte Daten" Write-Host "11 = Snapshot löschen`n12 = Rebuild-Index`n99 = Beenden" write-host "====================================" $aktion = Read-Host switch ($aktion) # switch, default fängt alle nicht eingetragen eingaben ab { 1 {& $pfad -r $repository --password-file $passwordfile check ; break} 2 {& $pfad -r $repository --password-file $passwordfile forget --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --keep-yearly 5 ; break} 3 {& $pfad -r $repository --password-file $passwordfile prune ; break} 4 {& $pfad -r $repository --password-file $passwordfile snapshots ; break} 5 { write-host "Befehl?"; $befehl=Read-Host; & $pfad -r $repository --password-file $passwordfile $befehl; break } 99 {exit;break} 6 {& $pfad -r $repository --password-file $passwordfile unlock; break} 7 { write-host "Befehl?"; $befehl=Read-Host; write-host -nonewline $pfad -r $repository --password-file $passwordfile $befehl; write-host `n break } 8 { write-host "Snapshot(latest/id)" $snapshot = read-host write-host "Zielpfad: " $target = read-host & $pfad -r $repository --password-file $passwordfile restore $snapshot --target $target } 9 { write-host "Snapshot(latest/id)" $snapshot = read-host write-host "Zielpfad: " $target = read-host write-host "Include: " write-host "====================================" write-host -Foregroundcolor red "Beispiele: " write-host -ForegroundColor yellow "Dateitypen: *.exe`nDatei: C\Users\mg\Desktop\rclone\datei.exe`nOrdner: C\Users\mg\Desktop\rclone\" write-host "Alles ist Case-Sensitive!" write-host "====================================" $include = read-host & $pfad -r $repository --password-file $passwordfile restore $snapshot --target $target --include $include } 10 { write-host "Snapshot(latest/id)" $snapshot = read-host write-host "Zielpfad: " $target = read-host write-host "Exclude: " $exclude = read-host & $pfad -r $repository --password-file $passwordfile restore $snapshot --target $target --exclude $exclude } 11 { write-host "Snapshot(latest/id)" $snapshot = read-host & $pfad -r $repository --password-file $passwordfile forget $snapshot } 12 {& $pfad -r $repository --password-file $passwordfile rebuild-index ; break} default{write-host "`nUngültige Eingabe!"} } #der auskommentiert absatz ist ob nochmal extra gefragt werden soll ob das script weiterausgeführt werden soll, entfällt da option 99 jetzt beende ist #write-host "====================================" #Write-Host "Abbrechen (j/n)?" #write-host "====================================" #$abbrechen = read-host } #while($abbrechen -eq "n") #führt die schleife immer wieder aus while (1 -eq 1)