2

初めてdosとバッチファイルをいじって、Minecraftの保存をバックアップするための「プログラム」を作成しようとしています(笑)。次の保存がMinecraftSavesフォルダーにコピーされる前に、プログラムで現在の保存(MinecraftSavesフォルダー内)の名前を「Backup#」に変更したいと思います。名前を変更するのは簡単ですが、複数のフォルダーを保存して、それぞれがフォルダー名の末尾にある番号をインクリメントするようにします(つまり、Backup1、Backup2、Backup3)。何か助けはありますか?全体を見渡してみましたが、自分のニーズにぴったり合うものが見つかりませんでした。

@Echo off
title Minecraft Backup
echo.
echo.
echo.
echo Do you want to backup you're Single Player World?
echo.
SET /P ANSWER=Do you want to continue (Y/N)?
if /i {%ANSWER%}=={y} (goto :yes)
if /i {%ANSWER%}=={yes} (goto :yes)
if /i {%ANSWER%}=={n} (goto :no)
if /i {%ANSWER%}=={no} (goto :no)

:no
PING 1.1.1.1 -n 1 -w 1000 >NUL
exit

:yes
ren C:\Users\Josh\Desktop\MinecraftSaves\SinglePlayer Backup
xcopy C:\Users\Josh\AppData\Roaming\.minecraft\saves C:\Users\Josh\Desktop\MinecraftSaves /-y /e /h

それが私が今まで持っているものです。以下を変更して、SinglePlayerフォルダーの名前をbackup1に変更し、次に実行するときに、新しいSinglePlayerフォルダーの名前をbackup2に変更します。私はこれをできる限り説明しようとしています。たぶん、これを行うためのより簡単な方法があります。バックアップフォルダに番号を付けてバックアップを作成するために必要です。それが十分に明確であることを願っています。

4

1 に答える 1

5

すみません。私はあなたの質問を本当に理解していなかったと思います。ただし、次のバッチ ファイルは、CurrentSave という名前の既存のフォルダーを取得し、その名前を Backup-# に変更し、最後の Backup-# 存在フォルダーに 1 を追加します。フォルダー名にダッシュを付けると、作業が簡単になります。

@echo off
for /D %%d in (Backup-*) do set lastfolder=%%d
for /F "tokens=2 delims=-" %%n in ("%lastfolder%") do set /A nextnumber=%%n+1
move CurrentSave Backup-%nextnumber%

ご希望に添えない場合は、詳細をお知らせください。サポートさせていただきます。

編集

わかった。上に投稿したコードは正しく機能しますが、いくつかの詳細が必要です。:yes以下は、ラベルから挿入する必要があるコードです。

:yes
set lastfolder=Backup-0
for /D %%d in (C:\Users\Josh\Desktop\MinecraftSaves\Backup-*) do set lastfolder=%%~Nd
for /F "tokens=2 delims=-" %%n in ("%lastfolder%") do set /A nextnumber=%%n+1
ren C:\Users\Josh\Desktop\MinecraftSaves\SinglePlayer Backup-%nextnumber%
xcopy C:\Users\Josh\AppData\Roaming\.minecraft\saves C:\Users\Josh\Desktop\MinecraftSaves /-y /e /h

別の変更を提案してもよろしいですか?

SET /P ANSWER=Do you want to continue (Y/N)?
for %%a in (y yes) do if /i "%ANSWER%"=="%%a" goto yes
:no

問題が解決した場合はお知らせください。

于 2011-10-27T01:25:15.350 に答える