Пакетное переименование файла имя инвертированной позиции - PullRequest
0 голосов
/ 06 февраля 2019

Мои файлы имеют такие имена, как:

andromeda_01.02.19.xlsx

Мне нужно изменить его на:

 andromeda_20190201.xlsx

Удаление точек с помощью командного файла.

Iможно только выделить дату, используя партию:

@echo off
RENAME "andromeda_*xlsx" "//////////////////*.xlsx" 

Может кто-нибудь помочь?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Это гарантирует, что мы не переименовываем файлы, уже переименованные.т. е. только переименовывать andromeda_dd.mm.yy.xls и не переименовывать andromeda_yyyymmddxls Кроме того, мы проверим, не существует ли уже файл переименования в ro, и сообщим вам об этом, если это произойдет.Кроме того, это предполагает 20-летний век, поскольку в вашем имени файла нет других индикаторов, подтверждающих другое:

@echo off
setlocal enabledelayedexpansion
for /f "tokens=1* delims=_" %%i in ('dir /b /a-d andromeda_*.*.*.xlsx') do (
    set "manip=%%~nj"
    if exist "%%i_20!manip:~6,2!!manip:~0,2!!manip:~3,2!%%~xj" (
        echo file %%i_20!manip:~6,2!!manip:~0,2!!manip:~3,2!%%~xj already Exists!
     ) else (
        rename %%i_%%j %%i_20!manip:~6,2!!manip:~0,2!!manip:~3,2!%%~xj
  )
)
0 голосов
/ 06 февраля 2019

Для andromeda_dd.mm.yy.xlsx файлов вы должны использовать:

@echo off

for /F "tokens=2-4 delims=._" %%A IN ('dir /B /A-D andromeda_*.xlsx') do (
    rename "andromeda_%%A.%%B.%%C.xlsx" "andromeda_20%%C%%B%%A.xlsx"
)
...