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
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?
Si lo hicieses en VBS sería más fácil.
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
Un ejemplo de utilidad:
@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!
estamos trabajando para usted :D
espera que estoy haciendo pruebas.
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
@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!
menos lineas:
@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!
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
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???
CitarSi lo hicieses en VBS sería más fácil.
En este caso, para lo que quiere hacer, realmente no se si sea la mejor opciòn, creo que me quedo con batch :P
(solo en este caso XD)Pero como ejemplo....
set objfso = createobject("scripting.filesystemobject")
set carpeta = objfso.getfolder("D:\Prueba")
set archivos = carpeta.files
for each f in archivos
objfso.movefile carpeta.path & "\" & f.name,carpeta.path & "\" & replace(f.name,".ctk","")
next
msgbox "Terminado"
CitarD:\Prueba
Sería la ruta completa a la carpeta donde están los archivos ;D
Saludos
Cita de: The Shadow en 7 Julio 2008, 23:56 PM
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???
El ultimo que pusistes aunque el penultimo tampoco me funciona
Un saludo
Cita de: Novlucker en 8 Julio 2008, 01:25 AM
CitarSi lo hicieses en VBS sería más fácil.
En este caso, para lo que quiere hacer, realmente no se si sea la mejor opciòn, creo que me quedo con batch :P (solo en este caso XD)
Pero como ejemplo....
set objfso = createobject("scripting.filesystemobject")
set carpeta = objfso.getfolder("D:\Prueba")
set archivos = carpeta.files
for each f in archivos
objfso.movefile carpeta.path & "\" & f.name,carpeta.path & "\" & replace(f.name,".ctk","")
next
msgbox "Terminado"
CitarD:\Prueba
Sería la ruta completa a la carpeta donde están los archivos ;D
Saludos
Hola Novlucker si funciono aunque siempre me quedare con la duda de como seria con un .bat
Un saludo y mil gracias nuevamente
[modificado]
He dejado un nuevo code, que cumple mejor los objetivos, en este mismo post más adelante.
Cita de: seu230 en 8 Julio 2008, 01:26 AM
Cita de: The Shadow en 7 Julio 2008, 23:56 PM
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???
El ultimo que pusistes aunque el penultimo tampoco me funciona
Un saludo
Ejecutaste el .bat en la misma carpeta donde estan los *.ctk.xls??? . . .
akabo de revisar, y no ay errores . . . ademas . . . tmb me funka perfecto. . .
Saludos!
Bueno, finalmente escribí un bat que renombrara quitando los últimos 4 caracteres del nombre aceptando archivos que incluyan nombres con espacios.
:: CarlitoS.dll
:: Bat que borra 4 ultimos caracteres de los nombres de varios archivos aceptando archivos que incluyan nombres con espacios.
:: Ubicar este bat en la misma carpeta de los archivos a renombrar.
@echo off
set ext=xls
rem ext es la extension de los archivos sin anteponer punto.
set sacar=4
rem sacar es la cantidad de letras al final del nombre que quieres sacar.
for /f "tokens=*" %%f in ('dir /b /a *.%ext%') do call :lab %%f
exit
:lab
set original=
set original=%*
set newname=
call set newname=%%original:.%ext%=%%
call set newname=%%newname:~0,-%sacar%%%.%ext%
if "%newname%"==".%ext%" (goto :eof)
ren "%original%" "%newname%"
goto :eof
Cita de: The Shadow en 8 Julio 2008, 03:43 AM
Cita de: seu230 en 8 Julio 2008, 01:26 AM
Cita de: The Shadow en 7 Julio 2008, 23:56 PM
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???
El ultimo que pusistes aunque el penultimo tampoco me funciona
Un saludo
Ejecutaste el .bat en la misma carpeta donde estan los *.ctk.xls??? . . .
akabo de revisar, y no ay errores . . . ademas . . . tmb me funka perfecto. . .
Saludos!
Hola the shadow perdon por la demora en responder lo volvi a probar y ahora si me funciono de hecho ahora me funcionan todos e incluso se me ocurrio aprovechar que los ultimos 4 digitops son .ckt para eliminar la extension .xls y de esa forma la pc entendera que ahora la extenson es .ckt y ps ahora solo tengo que volver a cambiar de extension a .xls un saludo y gracias a todos por la ayuda