Массовое переименование файлов, содержащих символы подчеркивания, в командной строке

Я хочу переименовать пакет файлов с именами example_P1.csv в example.csv в папке в командной строке.

Как мне этого добиться?

Я не могу добиться успеха с помощью следующей команды:

ren *_P1.csv *.csv

Я хочу удалить _P1 из всех этих файлов.

Любая помощь?


person Bhanu Chawla    schedule 13.08.2013    source источник


Ответы (1)


Вы не можете сделать это с помощью простого rename. Попробуйте это вместо этого:

@echo off

setlocal EnableDelayedExpansion

for %%f in (*_P1.csv) do (
  set "basename=%%~nf"
  ren "%%~ff" "!basename:~0,-3!%%~xf"
)
person Ansgar Wiechers    schedule 13.08.2013
comment
+1, но _P1 может появляться в нескольких местах в имени. Лучше использовать "!basename:~-3!%%~xf". Также потребуется включить/выключить отложенное расширение в цикле, если какие-либо имена содержат символ !. - person dbenham; 14.08.2013