Создавайте резервную копию файла каждые 5 минут, используя PowerShell - PullRequest
0 голосов
/ 30 марта 2019

Есть игра, в которой используется один файл сохранения. Этот файл сохранения записывается каждые пару секунд. Я хочу, чтобы скрипт создавал резервную копию этого файла сохранения каждые 5 минут. Вывод должен выглядеть так:

c:\users\...\10000.sl2 <- Оригинал </p>

C:\users\...\backup\10000-15.02.2019_18-34.sl2

C:\users\...\backup\10000-15.02.2019_18-39.sl2

Я пытался что-то соединить, используя LastWriteTime

PS C:\Users\...> $source = "C:\Users\...76561198109841889"
>> $destination = "C:\Users\...76561198109841889\backups"
>>
>> Get-ChildItem $source -Recurse -Include *.sl2 | % {
>>     $name = $_.Name.Split(".")[0] + "_" + ($_.LastWriteTime | Get-Date -Format yyyymmdd) + "_" + ($_.LastWriteTime | Get-Date  -Format hhmmss) + ".sl2"
>>     #$name = "Finished_" + ($_.LastWriteTime | Get-Date -Format yyyymmdd) + "_" + ($_.LastWriteTime | Get-Date  -Format hhmmss) + ".sl2"
>>     #$name = "Finished_" + $_.Name.Split(".")[0] +  "_" + ($_.LastWriteTime | Get-Date -Format yyyymmdd) + "_" + ($_.LastWriteTime | Get-Date  -Format hhmmss) + ".sl2"
>>     Rename-Item $_ -NewName $name
>>     Copy-Item "$($_.Directory)\$name" -Destination $destination

Я нашел этот код, погуглив мой вопрос. Нажатие Enter вызывает кучу файлов, но потом ничего не происходит.

1 Ответ

0 голосов
/ 31 марта 2019

Если эта игра пишет один файл и только один файл. Смысл заменять его каждые несколько секунд, а затем смотреть на эту отметку времени бессмысленно, так как она никогда не достигнет другого промежутка времени.

Просто установите запланированное копирование файла каждые 5 минут. Не имеет значения, используете ли вы PowerShell или Batch-файл для этого. Когда вы копируете, конечно, дайте ему новое имя в месте назначения.

$TimeStamp = (Get-Date).ToString('mmddyyyhhmmss')
Copy-Item -Path 'D:\Game\GameFileName' -Destination "D:\Game\Backup\$(GameFileName)_$(TimeStamp).bak"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...