Так вот сценарий, который при запуске INSIDE в папке переименует все .txt файлы с первой частью имени (до первой "_") и добавит в конец "_ABCXYZ", как вы указали
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
REM :: Loop through each file in the current folder
for %%f in (*) do (
REM :: Get just the file name as the loop returns entire path
set origName=%%~nxf
REM :: Check its a .txt file, so we don't rename anything else.
if !origName:~-4!==.txt (
REM :: Get everything UP TO the first "_" character
for /f "tokens=1 delims=_" %%a in ("!origName!") do set firstPart=%%a
REM :: Now we can append the string you specified to the end of first past
set newName=!firstPart!_ABCXYZ.txt
REM :: Perform the actual rename
ren !origName! !newName!
echo RENAMED !origName! TO !newName!
)
)
pause
Я прокомментировал все это, чтобы вы могли видеть, что все делает.Это может быть сжато и не разбито на так много строк, но я сохранил его многословно, так что вы можете увидеть, как он функционирует.
Если вы хотите более компактный и немного более эффективный, дайте мне знать ... будетполезно, если вы делаете миллионы файлов.