batch-file - 如何用数字重命名文件夹(即Folder1、Folder2等......)

标签 batch-file dos batch-rename

我第一次摆弄 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/

相关文章:

msbuild - 出现编译错误时立即停止MSBuild处理

command-line-arguments - Findstr -- 排除文件类型 -- 仅搜索 ascii

msbuild - 使用 MSBuild 批量重命名

regex - 在 Mac 终端上使用 Regex 重命名文件

windows - 从 blob 装载的 VHD 访问 Azure 文件失败(错误 1/无效的 MS-DOS 功能)

powershell - 从子文件夹复制文件并重命名

batch-file - 通过sc安装后如何自动启动Windows服务?

windows - 从 Cmd 行上的文件批量删除文件

batch-file - 批处理+ VBS错误预期语句结束

command-line - 在 MS-DOS 中更改一组文件的属性