Пакетный скрипт для переименования папки с новым именем и увеличения нового имени - PullRequest
0 голосов
/ 14 марта 2019

Я новичок в пакетном написании.Я использовал Robocopy в командном файле (который вызывает скрипт PowerShell) для выполнения различных задач, которые сделали работу намного более эффективной.Теперь мне нужно переименовать папку с другим именем и увеличивать это имя на 1 каждый раз, когда выполняется пакетный скрипт.Интервал важен, потому что у меня есть программное обеспечение, которое не будет читать путь, если он указан между именами.

C: \ Users \ Desktop \ Source \

В этом пути существует последовательность папок, подобная этой:

Папки сейчас
Папки сейчас предыдущая 1
Папки сейчас предыдущий 2

Я пытался найти пакетный скрипт, который переименует Папки сейчас в Папки сейчас предыдущий 'следующий шаг' , но я 'нам не повезло.Я пробовал разные сценарии, которые нашел, и они работают в определенной степени, но ни один из них не делает именно этого.Интервал между именами важен (не может быть Folders_Now_Previous_3), и именно здесь другие сценарии терпят неудачу.

Я использовал пакетный скрипт, который будет смотреть на самый последний последний номер и увеличивать это имя на 1. Это работает, но параметр именования (имя источника и новое имя) aka 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

Что я пытался сделатьdo измените его так, чтобы вывод не содержал подчеркивания. Он должен вывести это:

Папки сейчас предыдущие 1
Папки сейчас предыдущие 2
Папки сейчас предыдущие 3

MyПопытки изменить его будут работать в первый раз, но они перестанут работать после переименования первой папки.

...