Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: keypro en 25 Mayo 2016, 14:23 pm



Título: Asignar letra USB a variable (batch)
Publicado por: keypro en 25 Mayo 2016, 14:23 pm
Buenas, tengo múltiples herramientas en mi USB, las cuales suelo ejecutar con comandos de batch para volcar los resultados a lugares específicos, el problema es que otros equipos le asignan otra letra, haciendo que todas las rutas estén mal, para ello he creado 2 scripts, el primero vuelca la letra de la unidad donde se ejecuta a un .txt con:                        echo %~d0 > Letra.txt
Y el segundo vuelca los resultados del .txt a una variable:     set /p varr= < Letra.txt

Si ahora ejecuto la variable %varr%  como:   echo %varr%
me muestra la unidad correctamente, sin embargo al introducirla en una ruta:

start %varr%\ATk\antivir\DrWeb.exe /stext %var%\ATk\antivir\Amenazas Detectadas.txt

En vez de ejecutar el programa en cuestión, meramente me abre una carpeta emergente a la unidad %varr% , alguien sabe cómo podría funcionar? o una forma mejor de hacer esto mismo xD, gracias por su tiempo ;)


Título: Re: Asignar letra USB a variable (batch)
Publicado por: jalbtercero en 25 Mayo 2016, 19:28 pm
Creo que necesitas modificar el codigo de tus scripts y poner:
Código
  1. @echo off
  2. echo %~d0%~p0
  3.  

La segunda linea te devuelve la ruta desde la que se esta ejecutando el batch asi podras ejecutar los comandos desde cualquier ruta:

Por ejemplo: C:\users\Usuario\desktop\

Código
  1. @echo off
  2. rem Aqui por ejmplo copiamos un archivo txt que tenemos en la carpeta del batch a la
  3. rem Carpeta del usuario, podras hacerlo desqde cualquier ruta
  4. copy %~d0%~p0\copia.txt C:\users\Usuario
  5.  


Título: Re: Asignar letra USB a variable (batch)
Publicado por: keypro en 27 Mayo 2016, 10:02 am
Perfecto, es justo lo que necesita va, muchas gracias :D