Título: AYUDA A MOVER ARCHIVOS Y ENLISTAR A WINAMP CON BATCH VERSION 2 Publicado por: Dsalomon 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 (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 (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 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 La estructura principal llama a dos etiquetas con la sintaxis de subrutina siguiente: Citar CALL :[etiqueta][parametro1, parametro2, parametro3] La primera llamada: Código 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 Salida y código de verificación "exitoso" al terminar Código
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
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 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
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. |