我第一次摆弄 dos 和批处理文件,我正在尝试制作一个“程序”来备份我的 Minecraft 存档(笑)。我希望程序将当前保存(在我的 MinecraftSaves 文件夹中)重命名为“Backup#”,然后再将下一个保存复制到 MinecraftSaves 文件夹中。重命名它很简单,但我希望它保存多个文件夹,每个文件夹名称末尾递增一个数字(即 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。我正在尽力解释这一点。也许有一种更简单的方法可以做到这一点。我只需要它来用备份文件夹上的数字进行备份。希望这足够清楚。
最佳答案
对不起。我想我并没有真正理解你的问题。但是,以下批处理文件采用名为 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
如果您解决了问题,请告诉我。
关于batch-file - 如何用数字重命名文件夹(即Folder1、Folder2等......),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7910546/