¿Bat que borre 4 ultimos caracteres de los nombres de varios archivos?

Iniciado por seu230, 7 Julio 2008, 22:00 PM

0 Miembros y 1 Visitante están viendo este tema.

seu230

Hola amigos ¿como seria un bat que me borre los 4 ultimos caracteres de todos los archivos .xls contenidos en una carpeta? osea que me modifique los nombres de los archivos, por cierto los 4 ultimos caracteres siempre son .ctk (ojo que no es extensión la extension en si siempre es .xls)

Un saludo y gracias

carlitos.dll

quieres cambiar la extensión o el nombre.

Igual es complicado, porque que pasa si el nombre tiene 4 caracteres, ¿lo dejarás en nada?

aaronduran2


seu230

Solo quiero cambiarle el nombre y todos los archivos xls siempre tienen nombres de mas de 4 caracteres estuve leyendo algo en este link sobre caracteres:

http://multingles.net/docs/bats.htm

Pero igual no se como aplicarlo ¿como seria en VBS? el detalle tambien es que voy a meterle otras ordenes a este .bat y ps tendria que repasar VBS desde cero y ps medio que le agarre un poco la onda a los script .bat

Un saludo y gracias

The Shadow

Un ejemplo de utilidad:

Código (DOS) [Seleccionar]
@echo off
set /p ext=Extension?
set /p cant=Cantidad final de caracteres?
call :len %ext%
set /a cnt2=%a%+%cant%
for %%a in (*.%ext%) do call :cll %%a
exit
:cll
set name=%1
call :len %1
if /I %a% geq %cnt2% (
call set newn=%%name:~0,%cant%%%.%ext%
ren %name% %newn%
)
goto :EOF

:len
if %1'==' goto :EOF
set w=%1
set a=0
set bol=0
:lp
call :cnt "%%w:~%a%,1%%" %a%
if %bol%==1 goto :EOF
set /a a=%a%+1
goto lp
:cnt
set cur=%1
set len=%2
if %cur%a==""a (
echo %len%
set bol=1
)
goto :EOF


Saludos!




carlitos.dll

estamos trabajando para usted :D
espera que estoy haciendo pruebas.

The Shadow

Cita de: seu230 en  7 Julio 2008, 22:00 PM
Hola amigos ¿como seria un bat que me borre los 4 ultimos caracteres de todos los archivos .xls contenidos en una carpeta? osea que me modifique los nombres de los archivos, por cierto los 4 ultimos caracteres siempre son .ctk (ojo que no es extensión la extension en si siempre es .xls)

Un saludo y gracias
Código (DOS) [Seleccionar]

@echo off
for %%a in (*.xls) do call :cll %%a
pause
exit

:cll
set name=%1
set t=%name:~-8%
call set fin=%%name:%t%=%%
ren %name% %fin%.xls
goto :EOF


Saludos!




The Shadow

menos lineas:

Código (dos) [Seleccionar]
@echo off
for %%a in (*.xls) do (call :fr %%a)
pause&& exit
:fr
set act=%1
set nu=%act:.ctk=%
ren "%act%" "%nu%"
goto :EOF


Saludos!




seu230

Hola the shadow muchas gracias por la ayuda pero no me esta funcionando, me sale "el sistema no puede hallar el archivo especificado" varias veces
Un saludo y gracias de nuevamente

The Shadow

Cita de: seu230 en  7 Julio 2008, 23:47 PM
Hola the shadow muchas gracias por la ayuda pero no me esta funcionando, me sale "el sistema no puede hallar el archivo especificado" varias veces
Un saludo y gracias de nuevamente

q code estas tratando de usar???