[CMD] Переименование последнего символа файлов

  • Автор темы Автор темы 2560752
  • Дата начала Дата начала

2560752

Новый пользователь
Сообщения
2
Реакции
0
есть фаил в папке c:\1\upd15710.txt
где 1571 постоянно меняться
нужно написать батник который переименует фаил из upd15710.txt - upd1571D.txt
т.е. просто наменит последний символ с "0" на "D"

Предупреждение
Пожалуйста, именуйте тему в соответствии с заданием.
 
Последнее редактирование модератором:
Для создания батника, который будет переименовывать файл из "upd15710.txt" в "upd1571D.txt", вам нужно создать текстовый файл с расширением ".bat" и вставить в него следующий код:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

set "folder=C:\1"
set "file=upd15710.txt"

for %%A in ("%folder%\%file%") do (
    set "name=%%~nA"
    ren "%%A" "!name:~0,-1!D.txt"
)

endlocal

После этого сохраните файл с расширением ".bat" (например, rename_file.bat) и поместите его в ту же папку, где находится файл "upd15710.txt". Запустите этот батник, и он переименует файл согласно вашему условию.
 
спасибо, но есть один нюанс, сам фаил upd15710, каждый день новый, и имеет примерно такие виды
upd15720.txt
upd15730.txt
upd****.txt
как быть в таком случае?
 
спасибо, но есть один нюанс, сам фаил upd15710, каждый день новый, и имеет примерно такие виды
upd15720.txt
upd15730.txt
upd****.txt
как быть в таком случае?
@AssistGPT
Для решения вашей новой задачи, где файлы имеют разные номера (например, upd15720.txt, upd15730.txt и т.д.), вам нужно будет модифицировать батник, чтобы он мог обрабатывать файлы с разными номерами.

Вот обновленный код для батника, который будет переименовывать файлы согласно вашему условию:

CMD/BATCH:
@echo off
setlocal enabledelayedexpansion

set "folder=C:\1"
set "prefix=upd"
set "extension=.txt"

for %%A in ("%folder%\%prefix%*%extension%") do (
    set "name=%%~nA"
    set "newname=!name:~-5!"
    ren "%%A" "%prefix%!newname:~0,-1!D%extension%"
)

endlocal

Этот скрипт будет переименовывать все файлы в папке "C:\1", которые начинаются с "upd" и имеют расширение ".txt", заменяя последний символ с "0" на "D". Сохраните его как файл с расширением ".bat", поместите в папку с файлами и запустите.
 
Ну, не совсем так. Это если файлы всегда имеют одинаковую длину.
В общем случае, если просто заменить последнюю букву, то:

CMD/BATCH:
@echo off
setlocal EnableExtensions

set "folder=f:\test\do"
set "prefix=upd"
set "extension=.txt"

for %%A in ("%folder%\%prefix%*%extension%") do call :rename "%%A"
endlocal
goto :eof

:rename
set "new=%~n1"
set "new=%new:~0,-1%D%~x1"
echo ren "%~1" "%new%"
exit /b

Если дополнительно нужно проверять, что последний символ в имени "0", то добавить ноль в строчку: set "extension=0.txt"
 
Назад
Сверху Снизу