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

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: [1]
1  Programación / Scripting / Re: renombrar ficheros con distintos nombres en: 12 Agosto 2022, 00:09 am
Buenas noches

Os traigo el Bach explicado por partes que he acabado gracias a EdePC
archivo-> inicio.txt lista inicial
capitulo1
capitulo2
capitulo3
archivo-> final.txt nombres que quedaran al final
capitulo nuevo 1
capitulo nuevo 2
capitulo nuevo 3

Añadimos ren y comillas a nuestra lista inicial
Código
  1. @echo off
  2. Setlocal EnableDelayedExpansion
  3. for /f "tokens=*" %%x in ('type inicio.txt') do (echo ren "%%x") >> inicio.tmp
  4. timeout /t 1
  5.  
Sustituimos las vocales que tienen tildes
Código
  1. set acentos=0
  2. if %acentos% == 0 (goto cambiar_tildes) ELSE (goto pause)
  3. :cambiar_tildes
  4. for /F "tokens=*" %%b in (final.tmp) do (
  5. set vocales=%%b
  6. set vocales=!vocales:á=a!
  7. set vocales=!vocales:é=e!
  8. set vocales=!vocales:í=i!
  9. set vocales=!vocales:ó=o!
  10. set vocales=!vocales:ú=u!
  11. Echo !vocales!>>final1.tmp
  12. )
  13. :pause
  14. timeout /t 1
  15.  
Añadimos la numeración de los capítulos
Código
  1. set cont1=1
  2. for /f "tokens=*" %%a in ('type final1.tmp') do (
  3. if !cont1! GTR 9 (echo !cont1!.-%%a>> final2.tmp) ELSE (echo 0!cont1!.-%%a>> final2.tmp)
  4. set /a cont1+=1
  5. )
  6. timeout /t 1
  7.  
Elegimos que extensión si mp4 o mkv
Código
  1. findstr "*.mp4" inicio.txt
  2. if errorlevel == 0 (goto Funcion1) ELSE (goto Funcion2)
  3.  
  4. :Funcion1
  5. for /f "tokens=*" %%L in ('type final2.tmp') do (echo "%%L.mp4") >> final3.tmp
  6. timeout /t 1
  7. goto union
  8.  
  9. :Funcion2
  10. for /f "tokens=*" %%L in ('type final2.tmp') do (echo "%%L.mkv") >> final3.tmp
  11. timeout /t 1
  12.  
  13. :union
  14.  
Final3.tmp lo insertamos en inicio.txt
Código
  1. 3<final3.tmp (
  2.  For /F "tokens=*" %%i In (inicio.tmp) Do (
  3.    0<&3 Set /P "lin="
  4.    Echo %%i !lin!
  5.  )
  6. ) >cambio.txt
  7.  
  8. Setlocal DisableDelayedExpansion
  9.  
  10. timeout /t 1
  11.  
Cambiamos la extensión para convertirlo en bat, ejecutarlo y borrar los archivos creados
Código
  1. ren cambio.txt cambio.bat
  2. timeout /t 1
  3. call cambio.bat
  4. timeout /t 1
  5. del *tmp
  6. del final.txt
  7. del inicio.txt
  8. del cambio.bat
  9.  
  10. echo ---El cambio se realizado correctamente---
  11.  
2  Programación / Scripting / Re: renombrar ficheros con distintos nombres en: 9 Agosto 2022, 19:18 pm
Buenas tardes

Gracias EdePC por la explicación, veo que me queda mucho camino por recorrer.

Tu explicación no podía ser mas detallada, me pondré con el material que me has recomendado ya que quiero aprender mas sobre Bach.

De nuevo muchas gracias y cuando tenga todo el código lo expondré con los ejemplos, espero que ha alguien mas le pueda ayudar.

Un saludo
3  Programación / Scripting / renombrar ficheros con distintos nombres en: 7 Agosto 2022, 23:36 pm
Hola a todos
soy nuevo en esta pagina
estoy aprendiendo Bach ya que me gusta la informática.
tengo una duda con un Bach que  con lo que he ido leyendo en este foro y en otros sitios he conseguido.
Me gustaría que me ayudarais o que me pudierais guiar en lo que pudierais sobre el Bach que he creado.
Estoy intentando crearme un .bat para cambiar los nombres de los capítulos de una seri teniendo un txt con la lista.
Lo que en este bat intento hacer es hacer una lista con los nombres que están puestos en la carpeta
Ej:
prueba    prueba2
capitulo1           capitulo nuevo 1
capitulo2           capitulo nuevo 2
capitulo3           capitulo nuevo 3

y en el txt que tengo los nuevos nombres (todos diferentes claro)

mi bach es este:

dir /b > prueba.txt

@echo off
for /f "tokens=*" %%x in ('type prueba.txt') do (echo ren "%%x") >> prueba1.tmp
for /f "tokens=*" %%x in ('type prueba2.txt') do (echo "%%x") >> prueba2.tmp

Setlocal EnableDelayedExpansion
set archorig=prueba1.tmp
set archorig1=prueba2.tmp
set archdest=total.txt
for /F "tokens=*" %%a in (%archorig% %archorig1%) do (
rem: %%a
   set lin=%%a
   echo !lin!>>%archdest%
   echo.
)
echo.
del *.tmp
pause>nul

goto:eof

El resultado es primero la lista y luego los nombres nuevos pero con los cambios.

EJ:

ren "capitulo1"
ren "capitulo2"
ren "capitulo3"
"capitulo nuevo 1"
"capitulo nuevo 2"
"capitulo nuevo 3"

Alguien podría decirme que hago mal, ya que lo que necesitaría seria

ren  "capitulo1" "capitulo nuevo 1"
ren  "capitulo2" "capitulo nuevo 2"
ren  "capitulo3" "capitulo nuevo 3"

Muchas gracias
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines