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 ;)
Creo que necesitas modificar el codigo de tus scripts y poner:
@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\
@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
Perfecto, es justo lo que necesita va, muchas gracias :D