PDA

Показать полную графическую версию : удалить часть имени файла


foto-d.k
17-08-2018, 18:16
друзья помогите
нужно постоянно удалять в ручную из имени файла "_sphere"
файлы такого формата
pano0001_sphere.tif
pano0002_sphere.tif
pano0003_sphere.tif
надо чтоб имя сохранялось удалялось только часть _sphere

пробовал этот код

@echo off
for %%A IN (*.*) DO (
for /f "tokens=1* delims=_sphere" %%B IN ("%%~nA") DO ren "%%~A" "%%~B%%~xA"
)

он делает с такого (pano0001_sphere.tif) такое (ano0001.tif)

alpap
17-08-2018, 19:45
delims=_sphere »
будет делить по каждому встречающемуся знаку, а не по цельному сегменту
в вашем случае лучше ..."delims=_".. (tokens=1 уже стоит по умолчанию) и дописать расширение - вывод %%A.tif

for /f "delims=_" %%A in ('dir /a-d/b "pano*_sphere.tif"') do echo %%A.tif
:: Правда для переименования tokens писать придеться
for /f "tokens=1* delims=_" %%A in ('dir /a-d/b "pano*_sphere.tif"') do ren "%%A_%%B" "%%A%%~xB"

Iska
17-08-2018, 19:52
Прямо в командной строке:
for %i in (pano*_sphere.tif) do @(set "sVar=%~i" & call ren "%~i" "%sVar:_sphere=%")

foto-d.k
17-08-2018, 20:15
спасибо! и один и второй способ работает




© OSzone.net 2001-2012