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.batpara comenzar Iris.exe
No puedo usar esto: F:/Program/bin/Iris.execomo 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.%~dp0siempre 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,%~dp0dará la ruta del script en sí.fuente
Debería poder usar el directorio actual
fuente
Program, esto sucederá cuando haga doble clicrun.baten el explorador.%CD%es el directorio actual%~dp0es 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 simplecdcomando en la línea antes de intentar ejecutar el .exerun.bat.