Aquí está mi propia carpeta de programa en mi unidad USB:
Program\
run.bat
bin\
config.ini
Iris.exe
library.dll
etc.
Me gustaría usar run.bat
para comenzar Iris.exe
No puedo usar esto: F:/Program/bin/Iris.exe
como un acceso directo, porque a veces no se adjunta como unidad F:
( por ejemplo, E:
o G:
)
¿Qué necesito escribir en el archivo bat para trabajar independientemente de la letra de la unidad?
Intenté esto en el archivo BAT:
"\bin\Iris.exe"
Pero no funciona.
batch-file
cmd
relative-path
drive
usuario2083037
fuente
fuente
C:\myDir\\bin\Iris.exe
(tenga en cuenta la doble barra invertida). ¿Esto todavía funciona pero dejando de lado la barra invertida antes de que bin parezca "más limpio"? ->%~dp0bin\Iris.exe
.%~dp0
siempre tendrá una barra invertida final, ambas declaraciones funcionarán. De lo contrario, el que tiene la barra diagonal inversa adicional es la variante más segura."%~dp0\bin\Iris.exe"
) ya que la ruta tenía un espacio en blanco :) Solo para estar realmente seguro de que funciona en todas las computadoras.SET "scriptdir=%~dp0"
y en la siguiente líneaIF NOT "%scriptdir:~-1%"=="\" SET "scriptdir=%scriptdir%\"
. He visto incidentes en los que la doble barra diagonal inversa en el medio del camino rompe el software.Puede obtener todas las propiedades de archivo requeridas utilizando el siguiente código:
fuente
He descubierto que
%CD%
proporciona la ruta desde la que se llamó el script y no la ruta del script, sin embargo,%~dp0
dará la ruta del script en sí.fuente
Debería poder usar el directorio actual
fuente
Program
, esto sucederá cuando haga doble clicrun.bat
en el explorador.%CD%
es el directorio actual%~dp0
es el directorio del archivo por lotes en sí mismoya sea
bin\Iris.exe
(sin barra inclinada, porque eso significa comenzar desde la raíz)o
\Program\bin\Iris.exe
(ruta completa)fuente
\Program
, ¿no es así? Puede mostrar eso con un simplecd
comando en la línea antes de intentar ejecutar el .exerun.bat
.