Tengo un batarchivo 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, yacdque no cambia la unidad activa.Editar : Aparentemente (gracias @Yoopergeek ) puede agregar el
/Dparámetro alcdcomando para permitir que también cambie la unidad activa.fuente
help callen uncmdmensaje.%~dp0cd /Docd "%~dp0" /Dno 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
/Dinterruptor en el comando de su CD, y el CD cambiará la unidad activa.fuente