Tengo un bat
archivo en Windows que ejecuta una operación procdump . El problema con el archivo por lotes es que primero necesito cd al directorio de archivos por lotes antes de ejecutar el trabajo, de lo contrario, el script no funcionará.
¿Cómo cambiar al directorio actual de archivos por lotes?
Intenté el siguiente código en mi procdump.bat
:
cd "%~dp"
procdump -h devenv.exe mydump.txt
Pero falló, el mensaje de error es:
El siguiente uso del operador de ruta en la sustitución de parámetros por lotes no es válido:% ~ dp "
Para formatos válidos, escriba CALL /? o por /?
Editar: la respuesta proporcionada funciona, pero solo hay un problema: si mi directorio actual es diferente al directorio de archivos por lotes, obtendría un "El sistema no puede encontrar la ruta especificada". Alguien tiene alguna idea?
fuente
Respuestas:
Ok, creo que encontré aquí a qué te refieres
%~dp
.Creo que lo que realmente quieres hacer es esto:
(!) Pero tenga en cuenta que esto todavía no le dará el comportamiento correcto cuando intente ejecutar su lote mientras el directorio actual está en otra unidad, yacd
que no cambia la unidad activa.Editar : Aparentemente (gracias @Yoopergeek ) puede agregar el
/D
parámetro alcd
comando para permitir que también cambie la unidad activa.fuente
help call
en uncmd
mensaje.%~dp0
cd /D
ocd "%~dp0" /D
no puedo ayudar.cd /D "%~dp0"
. Gracias.Dejaría un comentario a la respuesta de fretje, pero evidentemente no puedo.
De todos modos, con respecto a la nota:
Pero tenga en cuenta que esto aún no le dará el comportamiento correcto cuando intente ejecutar su lote mientras el directorio actual está en otra unidad, ya que el CD no cambia la unidad activa.
Use el
/D
interruptor en el comando de su CD, y el CD cambiará la unidad activa.fuente