Asignar letra USB a variable (batch)

Iniciado por keypro, 25 Mayo 2016, 14:23 PM

0 Miembros y 1 Visitante están viendo este tema.

keypro

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 ;)

jalbtercero

#1
Creo que necesitas modificar el codigo de tus scripts y poner:
Código (dos) [Seleccionar]

@echo off
echo %~d0%~p0
pause
exit


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 (dos) [Seleccionar]

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


keypro

Perfecto, es justo lo que necesita va, muchas gracias :D