Lo que estaba haciendo era crear un archivo en el escritorio para posteriormente verificar si ese archivo estaba, si estaba, pues no se iba a ejecutar, y si no estaba, sí se iba a ejecutar.
Ya viste que eso es innecesario. La variable especial de argumento "
%0" (sus modificadores "
d" de
driveletter y "
p" de
path) te permite determinar el directorio de inicio o
startup directory del archivo bat. Con la variable dinámica "
%CD%" ("CD" es un acrónimo de
Current Directory) puedes determinar el directorio de trabajo actual o
working directory de la CMD, y con las variables de entorno o
environment variables puedes determinar la ubicación de varios directorios predefinidos del sistema operativo actual.
( Te doy la info. tanto en Castellano como en Inglés por si es de tu interés. )
Cómo sería para hacer que el archivo batch solo se ejecute si está en la raíz de una unidad. Por ejemplo, si está en C:\ o D:\ se ejecute sin problemas; pero si detecta que es un directorio o subdirectorio, como por ejemplo, "Escritoio o descargas" no se ejecute.
Para impedir que el script prosiga con su ejecución al iniciarlo desde un directorio distinto al directorio raíz de un (cualquier)dispositivo, simplemente puedes tomar la variable especial "%0" y comparar su modificador "d" (driveletter) con sus modificadores "dp" (driveletter+path) para determinar si son distintos:
ECHO:[x] Este archivo por lotes debe ejecutarse desde la raíz de una unidad
(ej.: "
%~d0\"
^).
ECHO:[x] El programa se cerrará.
)
-Enjuto Mojamuto "rey de los frikis" a su disposición -por segunda vez- para futuras dudas.