Я ищу способы удалить точку (.) В файле ниже, но, похоже, он распознается ОС как расширение

SEGA8031.2867

Я хотел бы изменить его так, чтобы он был похож на файл ниже. Замена точки "." подчеркиванием "_".

SEGA8031_2867

Провел некоторое тестирование с .bat, но не получил ожидаемого результата.

REN *SEGA????.????* *SEGA????_????*

Не могли бы вы помочь мне?

0
Samuel Gomes Ferreira 5 Мар 2015 в 00:14

2 ответа

Лучший ответ

Использование чистой партии:

@echo off
setlocal disableDelayedExpansion
for /f "eol=: delims=" %%F in ('dir /b "*sega8031.2867*"') do (
  set "file=%%F"
  setlocal enableDelayedExpansion
  ren "!file!" "!file:SEGA8031.2867=SEGA8031_2867!"
  endlocal
)

Используя мою гибридную JScript / пакетную утилиту JREN.BAT:

jren "(SEGA8031)\.(2867)" "$1_$2"
0
dbenham 5 Мар 2015 в 01:58

Пакет имеет синтаксис замены строк в переменных. Это %variable:search=replace%

> SET filename=SEGA8031.2867
> SET newfilename=%filename:.=_%
> echo %newfilename%
SEGA8031_2867
1
Ryan Bemrose 4 Мар 2015 в 21:16