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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  AYUDA A MOVER ARCHIVOS Y ENLISTAR A WINAMP CON BATCH VERSION 2
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: AYUDA A MOVER ARCHIVOS Y ENLISTAR A WINAMP CON BATCH VERSION 2  (Leído 617 veces)
Dsalomon

Desconectado Desconectado

Mensajes: 52


Ver Perfil
AYUDA A MOVER ARCHIVOS Y ENLISTAR A WINAMP CON BATCH VERSION 2
« en: 4 Febrero 2019, 08:21 am »

Saludos amigos vengo por su conocimiento para entender o corregir un código que me facilitaría varias acciones repetitivas relacionadas a programar un canal de Tv local; en 2015 nuestro administrador Elektro, me estructuro con una impresionante lógica el código, pero mi inexperiencia me ha llevado aun hoy en 2019, en no comprenderlo a totalidad, y no poder usarlo tratare de explicarlo en búsqueda de correcciones o sus amables sugerencias.

Dejo el link de referencia del tema donde inicie esto.

https://foro.elhacker.net/scripting/mover_a_otra_carpeta_y_usar_una_archivo_por_orden_de_menor_a_mayor_con_batch-t428033.0.html;msg1989649#msg1989649

Y la referencia de Winamp:

http://forums.winamp.com/showpost.php?p=1953663&postcount=7

Explicación:

Tengo una carpeta llamada “capítulos” con una serie con extensión MP4, AVI, o MKV, ordenados en números de menor a mayor: 

Capitulo_001.mp4
Capitulo_002.avi
Capitulo_003.mkv
Capitulo_004.mp4
etc.


Necesito mover el archivo de menor número en su nombre a otra carpeta llamada “emitidos”; Eso funciona de maravilla en el código.

Por ultimo ese archivo (ahora en la carpeta “emitidos”) se debe agregar a al editor de listas de reproducción de Winamp y reproducirlo, combinando la Winamp Command Line.

He aquí el código, con algunas mínimas modificaciones del de Elektro:

Código
  1. @Echo OFF & Title codigo estructurado por Elektro
  2. IF NOT EXIST emitidos (md emitidos)
  3. Call :MoverSigArchivo "mp4" "%Cd%\capitulos" "%Cd%\emitidos"
  4. Call :PlayEnWinamp "%SigArchivo%"
  5. Exit /B 0
  6.  
  7.  
  8. :MoverSigArchivo
  9. set "extension=%~1"
  10. Set "capitulos=%~2"
  11. Set "emitidos=%~3"
  12.  
  13.  
  14. For %%# in (
  15. "%capitulos%\*.%extension%"
  16. ) Do (
  17. Set "sigArchivo=%%~f#"
  18. (Move "%%~f#" "%emitidos%\%%~nx#")1>NUL
  19. Exit /B 0
  20. )
  21. Goto:EOF  
  22.  
  23. :PlayEnWinamp
  24. Set "filepath=%~1"
  25. Set "wampDir=%PROGRAMFILES(X86)%\Winamp"
  26.  
  27. If "%~2" NEQ "" (Set "wampDir=%~2")
  28.  
  29. Start /B "WinAmp" "%wampDir%\winamp.exe" "%filepath%"
  30. Goto:EOF
  31.  
  32.  


Este Código se ejecuta en la carpeta actual: %CD%  y verifica que exista una carpeta "emitidos", sino la crea dentro de la carpeta actual:


Código
  1. IF NOT EXIST emitidos (md emitidos)



La estructura principal llama a dos etiquetas con la sintaxis de subrutina siguiente:

Citar
CALL :[etiqueta][parametro1, parametro2, parametro3] 

La primera llamada:

Código
  1. Call :MoverSigArchivo "mp4" "%Cd%\capitulos" "%Cd%\emitidos"

Según entiendo:

Llamada: etiqueta :MoverSigArchivo y le asigna tres parámetros
      parametro1: mp4 se guarda y se referira como %1
      parametro2: ruta actual\capitulos y se referira como %2
      parametro3: ruta actual\emitidos y se referira como %3


Llamada: etiqueta :PlayEnWinamp y le asigna la variable %SigArchivo% como único parametro


Código
  1. Call :PlayEnWinamp "%SigArchivo%"


Salida y código de verificación "exitoso" al terminar

Código
  1. Exit /B 0


Etiqueta :MoverSigArchivo y le asigna tres argumentos
     argumento1: extension sin comillas:  mp4, se guarda como %~1, se asigna la variable %extension%
     argumento2: nombre de la carpeta sin comillas: capitulos, se guarda como %~2, se asigna la variable %capitulos%
     argumento3: nombre de la carpeta sin comillas: emitidos, se guarda como %~3, se asigna la variable %emitidos%

NOTA:
Con Comillas: %1 resultado: "parámetro de varias letras"
Sin Comillas: %~1 resultado: parámetro de varias letras


Código
  1. :MoverSigArchivo
  2. set "extension=%~1"
  3. Set "capitulos=%~2"
  4. Set "emitidos=%~3"
  5.  


FOR analiza y asigna la variable con nombre: #

sintaxis FOR para archivos

 FOR %%parámetro IN (establecer comandos o rutas) DO (acciones)
      
PARA %%# EN (carpeta: capitulos\todos los archivos.mp4) DO (accion mover) salir y verificar
   
SET declara la variable: "SigArchivo" que devuelve el modificador %%~f#: ruta y el archivo de número menor
 
MOVE (argumento1, argumento2) DO (MOVER %%~f# a carpeta emitidos\%%~nx#)
      
REFERENCIAS:

%%~f#: ruta del archivo con número menor (no estoy seguro)
%%~nx#: nombre de archivo y extensión
1>NUL: no direcciona salida de texto
EXIT /B 0:  salida con código "exitoso"
GOTO EOF:  terminar funciones y continua a la etiqueta :PlayEnWinamp" y sus comandos)

Código
  1. For %%# in (
  2. "%capitulos%\*.%extension%"
  3. ) Do (
  4. Set "sigArchivo=%%~f#"
  5. (Move "%%~f#" "%emitidos%\%%~nx#")1>NUL
  6. Exit /B 0
  7. )
  8. Goto:EOF  
  9.  


Etiqueta: PlayEnWinamp y le asigna tres argumentos
     argumento1: Asignar una variable llamada Filepath argumento %~1 definido extensión en la etiqueta MoverSigArchivo

argumento2: Asignar una variable llamada wampDir: ruta de instalación de winamp, argumento %~2

      
IF el argumento: carpeta capitulos NEQ: no es igual
n+1 aumenta el numero
 

Código
  1. :PlayEnWinamp
  2. Set "filepath=%~1"
  3. Set "wampDir=%PROGRAMFILES(X86)%\Winamp"
  4.  
  5. If "%~2" NEQ "" (Set "wampDir=%~2")
  6.  
  7. Start /B "WinAmp" "%wampDir%\winamp.exe" "%filepath%"
  8. Goto:EOF
  9.  


Conclusiones:

El código funciona hasta la parte donde mueve los archivos,
Pero al enlistar el archivo la ruta sigue en la carpeta capítulos y no emitidos…

No se si me pueden ayudar a ver como corregir que enliste el ultimo archivo movido a la carpeta “emitidos”.

Buena madrugada.





En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda. MOVER ARCHIVOS .TXT
Programación Visual Basic
xtrot 8 2,585 Último mensaje 11 Julio 2008, 23:51 pm
por xtrot
Ayuda. Necesito Mover Automaticamente Archivos y Carpetas
Scripting
JRpropaganda 1 2,692 Último mensaje 28 Septiembre 2015, 17:55 pm
por Eleкtro
Viaja a 1998 con esta versión web de Winamp
Noticias
wolfbcn 3 748 Último mensaje 9 Febrero 2018, 20:23 pm
por BloodSharp
[Batch] Fallo al mover carpetas
Scripting
MatiasCardullo 1 1,146 Último mensaje 8 Julio 2018, 05:22 am
por MatiasCardullo
mover archivos con powershel desde un listado de archivos en variable de memoria
Scripting
erick_correa 1 796 Último mensaje 18 Septiembre 2018, 01:26 am
por EdePC
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines