批处理脚本可将文件夹重命名为新名称并增加新名称

时间:2019-03-13 21:08:18

标签: batch-file directory increment

我是批量提取的新手。我一直在批处理文件(称为PowerShell脚本)中使用Robocopy来执行各种任务,这些任务使工作效率大大提高。现在,我需要重命名具有不同名称的文件夹,并在每次执行批处理脚本时将该名称增加1。间距很重要,因为如果在命名之间加了强调,则我的软件不会读取该路径。

C:\ Users \ Desktop \ Source \

此路径中存在的是这样的文件夹序列:

立即文件夹
现在的文件夹上一页1
现在的文件夹上一页2

我一直在尝试找到一个批处理脚本,该脚本会将 Folders Now 重命名为 Folders Now先前的“下一个增量” ,但是我没有运气。我已经尝试过找到的各种脚本,它们在一定程度上可以正常工作,但是没有一个脚本可以完全做到这一点。命名之间的间隔很重要(不能为Folders_Now_Previous_3),这是其他脚本失败的地方。

我一直在使用批处理脚本,该脚本将查看最高的最后一个数字并将该名称加1。这是可行的,但是命名参数(源名称和新名称)又称为 set“ baseName = 是相同的,并且需要有所不同,并且还包含下划线,这对于旧版软件来说是不行的。

编辑: 我一直在该论坛中较早的帖子中使用此脚本:

    @echo off
    setlocal enableDelayedExpansion
    set "baseName=Folders_Now_Previous_"
    set "n=0"
    for /f "delims=" %%F in (
      '2^>nul dir /b /ad "%baseName%*."^|findstr /xri "%baseName%[0-9]*"'
    ) do (
      set "name=%%F"
      set "name=!name:*%baseName%=!"
      if !name! gtr !n! set "n=!name!"
    )
    set /a n+=1
    md "%baseName%%n%"

执行此脚本时,它返回以下内容:

Folders_Now_Previous_1
Folders_Now_Previous_2
Folders_Now_Previous_3

我一直试图做的就是对其进行修改,以使输出不包含下划线。它应该输出以下内容:

文件夹现在上一页1
现在的文件夹上一页2
现在的文件夹上一个3

我尝试修改它的操作将第一次生效,但是在第一个文件夹重命名后它将停止工作。

0 个答案:

没有答案