Войти

Показать полную графическую версию : [решено] Как из имени файла убрать 11 символов


cdp75
25-04-2012, 10:45
Уважаемые Гуру!

Во входящей папке лежат файлы типа ААА_123456_ГГГГММДД.htm, их нужно привести их к виду ААГГММДД.htm Пробую такой батник :

setlocal enabledelayedexpansion
for %%F in (*.htm) do @set file=%%~nxF && ren %%~nxF !file:~0,2!!file:~-6%%~nxF

в ответ получаю - файл с таким именем уже существует или не найден. Ткните носом, в чем косяк? Операционка - XP SP 3

Anonymоus
25-04-2012, 13:07
@Echo Off
SetLocal EnableDelayedExpansion
For /F "delims=" %%F In ('Dir "files\*.htm" /A-D /B') Do (
For /F "tokens=1,3 delims=_" %%A In ("%%F") Do (
Set Prefix=%%A&Set YYYYMMDD=%%B
Ren "files\%%F" "!Prefix:~,2!!YYYYMMDD:~2!"
)
)

megaloman
25-04-2012, 21:41
@echo off
SetLocal EnableDelayedExpansion
for %%F in (*.htm) do Set file=%%~nxF && ren !file! !file:~0,2!!file:~-11! У меня работает. Может быть, после того, как Вы упростите имя, и в самом деле могут встретиться повторяющиеся имена? Что тогда?

cdp75
26-04-2012, 06:07
СПАСИБО за код! Все работает! Тему закрываю.




© OSzone.net 2001-2012