So erstellen Sie ein Batch-Skript zum Sichern einer bestimmten Datei mit einem eindeutigen Zielordner (Windows)

So erstellen Sie ein Batch-Skript zum Sichern einer bestimmten Datei mit einem eindeutigen Zielordner (Windows)

Ich versuche, ein altes Spiel von mir (Fallout New Vegas 1.4.0.525) einzurichten, das mir Spaß macht, das jedoch für seine beschädigten Sicherungsdateien berüchtigt ist. Ich möchte fragen, ob es möglich ist, ein Batch-Skript zu erstellen, das die Sicherungsdateien kopiert und die kopierten Sicherungsdateien in einem Ordner für diesen bestimmten Satz gesicherter Sicherungen ablegt und dem Ordner basierend auf der Zeit, zu der das Skript ausgeführt wird, einen eindeutigen Namen zuweist. Mein Betriebssystem ist Windows 10.

Im Grunde genommen ist der Prozess, bei dem ich Hilfe suche,

Script started -> New Folder with a timestamp for name created -> save copied files to the new folder. 

Der Zeitcode, den ich anstrebe, ist ungefähr HHDDMMYYYY (z. B. 1203042019).

Die Speicherstände, von denen das Skript kopieren soll, befinden sich unter C:\Benutzer-Benutzer-\Dokumente\Meine Spiele\FalloutNV\Speicherstände, während die Ordner mit den Sicherungskopien unter F:\Backups liegen. Die zu kopierenden Speicherdateien haben die Dateitypen .fos und .nvse (.fos ist der Speicherdateityp des Spiels und .nvse ist ein Speicherdateityp, der von einem Mod zusätzlich zu den regulären Speicherdateien für die Mod-Konfiguration erstellt wird).

Wenn möglich, würde ich gerne wissen, ob das Skript ausgeführt werden kann, wenn ein bestimmtes Programm (Vortex, ein Mod-Manager und Launcher) geöffnet wird.

Vielen Dank im Voraus.

zur Verdeutlichung bearbeitet

Antwort1

Obwohl es in PowerShell und nicht in einer Batchdatei geschrieben ist, funktioniert es nativ unter Windows 10, ohne dass Plug-Ins oder Extras erforderlich sind.

Ich glaube, Sie suchen etwas Ähnliches wie das Folgende. In meinem Beispiel habe ich versucht, viele Kommentare einzufügen, um Ihnen den Einstieg zu erleichtern. Es ist in Powershell geschrieben – Sie müssen das Skript also als „myScript.ps1“ speichern und dann auf Ihrem Desktop eine Verknüpfung zu „PowerShell.exe -File C:\users\me\whereeverthescriptis\myScript.ps1“ erstellen.

Dadurch wird ein Backup versucht. Bei Erfolg wird die App gestartet:

#What do you want to backup?
$sourceFolder = "C:\users\bbell\Desktop\p"
#Where do you want to backup to?
$destinationFolder = "C:\Installs"

#Figure out a destination folder with a timestamp.  Store it in a variable so that the same folder name is used throughout the script if it takes over a second to run
$destinationFolderWithTimestamp = ($destinationFolder + "\" + (Get-Date -Format yyyy-mm-dd_HH-mmmm-ss))

#if <destination folder>\<current date and time> doesn't exist - create it!
If (!(Test-Path -Path $destinationFolderWithTimestamp)) {
    New-Item -ItemType Directory -Path $destinationFolderWithTimestamp
    Write-Host ($destinationFolderWithTimestamp + " Created")
}

try {
    #try a backup - stop if it fails
    Copy-Item -Recurse -Path $sourceFolder -Destination $destinationFolderWithTimestamp -ErrorAction Stop -force
    #confirm backup worked
    Write-Host "Backup Completed OK"
    #launch an app - in this case notepad - the "&" needs to be kept as it denotes launching something
    & C:\Windows\notepad.exe
} catch {
    #Error happened - inform user and do not launch
    Write-Host "Backup Failed - not launching app"
}

verwandte Informationen