Ayuda con un .BAT

Publicaciones
10
Fecha de inscripción
viernes, 7 de junio de 2019
Estatus
Miembro
Última intervención
viernes, 2 de agosto de 2019
- - Última respuesta: B3T8
Publicaciones
10
Fecha de inscripción
viernes, 7 de junio de 2019
Estatus
Miembro
Última intervención
viernes, 2 de agosto de 2019
- 2 ago 2019 a las 21:17
Hola,

por favor necesito ayuda con cierto .bat (el que da problemas y del cual depende todo el proceso) se ejecute en cualquier directorio y busque la carpeta "Descargas" sin importar el usuario que sea, en cualquier PC es decir que la ruta de trabajo del .bat sea siempre "Descargas" ignorando el hecho de a que "Usuario" pertenece.

@echo off
setlocal enabledelayedexpansion
attrib -r Lista_Descargada.m3u

set num1=Nuevo_Texto

for /f "tokens=*" %%A in (Lista_Descargada.m3u) do (set resultado=%%A && call :sub)
copy Lista_Creada.m3u Lista_Descargada.m3u

attrib +r Lista_Descargada.m3u
goto:eof

:sub
set resultado=!resultado:Texto_Original=%num1%!

echo %resultado%>>Lista_Creada.m3u

goto:eof


Como observan este código convierte el contenido del archivo descargado .m3u a otro con diferente nombre, modificando su contenido interno... pero solo funciona si el archivo .m3u esta en la misma carpeta donde esta el .bat; lo que necesito es que el .bat se ejecute y realice su trabajo desde un directorio diferente, pero que siempre localice el archivo .m3u en la carpeta "Descargas" realice su trabajo y se cierre automaticamente. (Ejemplo: El .bat esta en una carpeta del disco "C:" o en el "Escritorio", al ejecutarlo busque o localice al archivo .m3u que siempre estará en la carpeta "Descargas", lo lea, o abra, modifique, renombre, guarde y una vez cumplida esta tarea se cierre.)

Es decir se de archivos creados en CMD que lo hacen y supongo que con un .bat se puede lograr, pero mi IGNORANCIA me lo impide.

De antemano GRACIAS SU AYUDA, y me DISCULPO por tanta palabrería.
Ver más 

2 respuestas

Mejor respuesta
Publicaciones
234
Fecha de inscripción
sábado, 1 de abril de 2017
Estatus
Miembro
Última intervención
lunes, 19 de agosto de 2019
824
1
Gracias
Hola!
Por lo que veo parece que controlas bastante más de archivos BAT que yo, pero puedo decirte una cosa.
En MS-DOS tenemos variables, que nos facilitan lo que dices.
La carpeta Descargas, a no ser que el usuario haya cambiado la instalación del disco C: al D:, se encuentra en: C:\Users\USUARIO\Downloads

Para sustituir la palabra "usuario", podemos usar la variable "%username%".

C:\Users\%username%\Downloads

Sería lo que deberías poner.

Corrígeme si me equivoco.

Saludos!

Deja un "Gracias" 1

¡Estamos felices de haberte ayudado! ¿Te hemos sido de ayuda? ¡Déjanos un comentario! Evalúa a CCM

CCM 33890 usuarios nos han dicho gracias este mes

Comenta la respuesta de Torrenava
Publicaciones
10
Fecha de inscripción
viernes, 7 de junio de 2019
Estatus
Miembro
Última intervención
viernes, 2 de agosto de 2019
0
Gracias
Hola Torrenava, su respuesta ha sido muy acertada y me ha servido muchísimo.
sin embargo ahora me encuentro en otro problema que seguro es sencillo de resolver; y, respecto a su sospecha que manejo o conozco mas que usted... nada mas lejos de la realidad "soy un completo ignorante en esto de la programación".

Podría ud ayudarme con el siguiente problema:

Necesito crear un bat que abra un "archivo1.txt" identifique la tercera linea del contenido interno de ese archivo y navegue en esa linea hasta encontrar el primer grupo de números, copie esos números para luego pegarlos en otro "archivo2.txt".

La tercera linea del "archivo1.txt" es esta:

http://direccionweb.com/grupo-de-letras/123654/otrasletras?id=9876

Aclaro que el "archivo1.txt" el número deseado, osea el primer grupo de números varía cada determinado tiempo digamos cada 15 minutos, mientras que el ultimo grupo junto con el resto de caracteres permanecen siempre igual.

Por lo que después de 15 minutos bien podría ser:

http://direccionweb.com/grupo-de-letras/456321/otrasletras?id=9876


El "archivo2.txt" por su parte tiene en su interior una "palabra clave" que se repite unas 300 veces a la cual deseo cambiar por el número extraído en la tercera linea del "archivo1.txt".

Ejemplo del contenido interno del "archivo2.txt":

http://direccionweb.com/grupo-de-letras/palabraclave/otrasletras?id=9876
http://direccionweb.com/grupo-de-letras/palabraclave/otrasletras?id=9877
http://direccionweb.com/grupo-de-letras/palabraclave/otrasletras?id=9878

El resultado deseado sería:

http://direccionweb.com/grupo-de-letras/123654/otrasletras?id=9876
http://direccionweb.com/grupo-de-letras/123654/otrasletras?id=9877
http://direccionweb.com/grupo-de-letras/123654/otrasletras?id=9878

Espero haberme echo entender, soy algo lento para esto y valoraría mucho de vuestra ayuda..!!!

Gracias nuevamente y un abrazo...
Comenta la respuesta de B3T8