У меня есть несколько файлов в папке, и я хочу редактировать имена файлов с определенной позиции, используя cmd - PullRequest
0 голосов
/ 11 декабря 2018

У меня есть несколько файлов в папке, и я хочу редактировать имена файлов из определенной позиции, используя командную строку в windows 7

Имена файлов:

32132_213212_5416813135418.txt        >> 32132_ABCXYZ.txt
989545514_545445_1354189313218.txt    >> 989545514_ABCXYZ.txt
32541384_784548_6542314141482.txt     >> 32541384_ABCXYZ.txt

1 Ответ

0 голосов
/ 11 декабря 2018

Так вот сценарий, который при запуске 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

Я прокомментировал все это, чтобы вы могли видеть, что все делает.Это может быть сжато и не разбито на так много строк, но я сохранил его многословно, так что вы можете увидеть, как он функционирует.

Если вы хотите более компактный и немного более эффективный, дайте мне знать ... будетполезно, если вы делаете миллионы файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...