class Context { [string]$BackupName; [string] BackupRoot() { return Join-Path $PSScriptRoot ".." ".." ".." "backup" $this.BackupName; } [string] ArchivePath($name) { return Join-Path $this.BackupRoot() "$name.7z"; } [string] FileArchivePath($name) { return $this.ArchivePath($(Join-Path "Files" $name)); } [string] SoftwareArchive([string]$softwareName) { return $this.ArchivePath($softwareName); } }