elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  batch - modificar nombres de archivos, solo sacar las letras y dejar numeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: batch - modificar nombres de archivos, solo sacar las letras y dejar numeros  (Leído 6,741 veces)
hernan35

Desconectado Desconectado

Mensajes: 1


Ver Perfil
batch - modificar nombres de archivos, solo sacar las letras y dejar numeros
« en: 26 Diciembre 2012, 17:51 pm »

hola, como estan? exelente la pagina, chicos les pregunto a ver si me pueden ayudar. necesito a un grupo de archivos txt, cambiarles el nombres de cada uno, pero con la salvedad, que solo necesito quitar las letras del nombre de cada archivo y si dejar el numero final , ejemplo se llama Remito Solar 1578.txt Remito alcorta 2458.txt y asi miles, el resultado seria 1578.txt 2458.txt se entendio? espero que si , saludos y espero puedan ayudarme , saludos
Hernan35


En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: batch - modificar nombres de archivos, solo sacar las letras y dejar numeros
« Respuesta #1 en: 27 Diciembre 2012, 01:39 am »

Hola hernan35, esto debería servir.
Código:
@echo off
Rem eliminador de letras de nombre de archivos
Rem Realizado por Segadorfelix
set "h="
for /F %%I IN ('DIR /B *.txt') DO (set /A "h=0"
set "ho="
call:nuke %%I
set "el=")
exit /B
:nuke
call set "nombreD=%%nombre:~%h%,1%%%
set /A "h=h+1"
IF ["%nombreD%"]==[""] IF DEFINED el (ren %nombre%.txt %ho%.txt && Goto:EOF) else (
Goto:EOF )
IF %nombreD% GTR 100 (Goto:nuke) else ( set "el=YS" && set "ho=%ho%%nombreD%")
echo %nombre%
echo %nombreD%
echo %ho%
goto:nuke

SaluDoss


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: batch - modificar nombres de archivos, solo sacar las letras y dejar numeros
« Respuesta #2 en: 27 Diciembre 2012, 09:50 am »

El code de SegadorFelix no me ha funcionado en mi caso,
te dejo dos alternativas:


Código
  1. @echo off
  2.  
  3. :: Este script elimina todas las letras dejando sólamente los números.
  4. :: By Elektro H@cker
  5.  
  6. For %%# in (*.txt) Do (Call :Renamer "%%#")
  7. Pause&Exit
  8.  
  9. :Renamer
  10. Set "Filename= %~n1"
  11. Set /A "Next+=1"
  12. For /F %%# in ('Call Echo "%%FILENAME:~%NEXT%,1%%"') DO (
  13. IF %%# EQU "" (GOTO :BREAK)
  14. Echo "%%#" | FINDSTR "[0-9]" >NUL && (Call SET "RenamedFileName=%%RenamedFileName%%%%#")
  15. GOTO :RENAMER
  16. )
  17. :BREAK
  18. Call SET "RenamedFileName=%%RenamedFileName:"=%%"
  19. (Call Echo "%~1" "%%RenamedFileName%%%~x1" & Call Ren  "%~1" "%%RenamedFileName%%%~x1") & (GOTO:EOF)



Código
  1. @echo off
  2.  
  3. :: Este script elimina sólamente los caracteres que pongas en la variable "Set Chars=...".
  4. :: By Elektro H@cker
  5.  
  6. For %%# in (*.txt) Do (Call :Renamer "%%#")
  7. Pause&Exit
  8.  
  9. :Renamer
  10. Set "Filename=%~1"
  11. Set "Chars= a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K M N L O P Q R S T U V W X Y Z . , : - _ + [ ] { } ( ^) # @ ! = "
  12. (For %%@ in (%CHARS%) Do (Call Set "Filename=%%Filename:%%@=%%")) & (Call Echo "%~1": "%%FILENAME%%%~x1" & Call Rename "%~1" "%%FILENAME%%%~x1") & (GOTO:EOF
« Última modificación: 27 Diciembre 2012, 18:10 pm por EleKtro H@cker » En línea

Segadorfelix

Desconectado Desconectado

Mensajes: 157



Ver Perfil
Re: batch - modificar nombres de archivos, solo sacar las letras y dejar numeros
« Respuesta #3 en: 27 Diciembre 2012, 17:41 pm »

Gracias EleKtro H@cker, tenia dos errores.
1-Borre por error la variable nombre.
2-Solo sacaba letras de nombres sin espacios.
PD:Espero que no tenga mas bugs
PD2:Solo saca letras.
Código
  1. @echo off
  2. @echo off
  3. Rem eliminador de letras de nombre de archivos
  4. Rem Realizado por Segadorfelix
  5. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  6. set "h="
  7. for /F "tokens=*" %%I IN ('DIR /B *.txt') DO (set /A "h=0"
  8. set "ho="
  9. call:nuke "%%I"
  10. set "el=")
  11. exit /B
  12. :nuke
  13. set "nombre=%~n1"
  14. set "nombre=%nombre: =%"
  15. ren "%~nx1" "%nombre%.txt" 2>NUL
  16. :nukew
  17. call set "nombreD=%%nombre:~%h%,1%%%"
  18. set /A "h=h+1"
  19. IF ["%nombreD%"]==[""] IF DEFINED el (ren "%nombre%.txt" "%ho%.txt" && Goto:EOF) else (
  20. Goto:EOF )
  21. IF %nombreD% GTR 100 (Goto:nuke) else ( set "el=YS" && set "ho=%ho%%nombreD%")
  22. echo %nombre%
  23. echo %nombreD%
  24. echo %ho%
  25. goto:nukew
« Última modificación: 27 Diciembre 2012, 17:49 pm por Segadorfelix » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Modificar archivos de texto [batch] [Perl] « 1 2 »
Scripting
bjeli1980 10 13,102 Último mensaje 17 Mayo 2010, 09:07 am
por bjeli1980
Papelera de reciclaje (No veo los nombres de los archivos, solo los iconos)
Windows
Hallobadousa 3 4,464 Último mensaje 17 Septiembre 2010, 18:19 pm
por lealesdibua
[BATCH](SOLUCIONADO)Disminuir nombres repetidos a 1 solo « 1 2 »
Scripting
FranciskoAsdf 13 10,938 Último mensaje 29 Diciembre 2011, 18:07 pm
por Turrete
Duda verificacion solo letras y numeros!
Programación C/C++
LucasNahuel 1 1,621 Último mensaje 13 Mayo 2016, 15:59 pm
por fary
Modificar permisos totales disco local linux y dejar solo nuestro usuario.
GNU/Linux
Hason 5 2,726 Último mensaje 11 Enero 2020, 22:33 pm
por Hason
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines