Пакетное переименование файлов один за другим - PullRequest
0 голосов
/ 18 сентября 2018

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

@ECHO OFF

set /p var1="<"ver.log (Had to use "" because otherwise it is hidden here)

set /a var1=%var1%+1

Echo "%var1%"> "%~dp0\ver.log"

If %var1% EQU 1 (
ren "%~dp0\chrom0.txt" 3.txt
ren "%~dp0\1.txt" chrom0.txt
)

If %var1% EQU 2 (
ren "%~dp0\chrom0.txt" 1.txt
ren "%~dp0\2.txt" chrom0.txt
)

If %var1% EQU 3 (
ren "%~dp0\chrom0.txt" 2.txt
ren "%~dp0\3.txt" chrom0.txt
@Echo "0"> "%~dp0\ver.log"
)

Это работает для 3 файлов.Я могу заставить его работать больше, но бессмысленно использовать его для 50 и более файлов.

Пожалуйста, помогите.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Спасибо всем.Я использовал ваши советы и закончил с этим сценарием.: start

set / p var1 =

если% var1% gtr 4 set / "var1 = 1"

ren "% ~ dp0chrom0.txt"% var1% .txt

set / a var2 =% var1% + 1

, если% var2% gtr 5 set / a "var2 = 1"

Эхо "% var2%"> "%~ dp0log.log "

ren"% ~ dp0% var2% .txt "chrom0.txt

0 голосов
/ 22 сентября 2018

Мое решение:

    @echo off
    setlocal
    pushd "%~dp0"
    rem to get "<" on SO type "&lt;"
    set /a "var1=0,var2=0"
    if exist "%~f0.last" set /p "var1="<"%~f0.last"
    :scan
    set /a "var1+=1"
    if %var1% gtr 500 set /a "var1=0,var2+=1"
    if %var2% gtr 2 ( echo Error: not found any file
      pause
      endlocal
      exit /b 2
      goto :eof )
    if not exist "%var1%.txt" if not exist chrom0.txt goto scan
    if exist chrom0.txt if exist "%var1%.txt" ( echo Error: app in use?
      pause
      endlocal
      exit /b 1
      goto :eof
    ) else echo Warning: "%var1%" as chrom0.txt in use
    if not exist chrom0.txt ren "%var1%.txt" chrom0.txt
    echo "%var1%" in use
    echo wait for exit app
    rem call "c:\Your\Limited\App.exe" chrom0.txt
    pause
    ren chrom0.txt "%var1%.txt"
    set /p "=%var1%">"%~f0.last" <nul
    rem work in loop
    if exist "%~f0.loop" goto scan
    popd
    endlocal
    exit /b 0
...