Quiero crear algunos archivos por lotes para automatizar un programa.
Mi pregunta es cuando creo el archivo por lotes, ¿cuál es el directorio actual? ¿Es el directorio donde se encuentra el archivo o es el mismo directorio que aparece en el símbolo del sistema, o algo más?
batch-file
directory
Aaron de Windt
fuente
fuente
%0
podría dar el nombre de la subrutina actual, pero%~dp0
será siempre la ruta completa al archivo por lotes de ejecución..cmd
archivo y ejecutarlo como administrador,%cd%
daC:\WINDOWS\system32
y%~dp0
da al directorio del archivo por lotes con una barra diagonal final.Por lo general, es el directorio desde el que se inicia el archivo por lotes, pero si inicia el archivo por lotes desde un acceso directo, se podría proporcionar un directorio de inicio diferente. Además, cuando está en cmd, y su directorio actual es
c:\dir3
, aún puede iniciar el archivo por lotes utilizando,c:\dir1\dir2\batch.bat
en cuyo caso, el directorio actual serác:\dir3
.fuente
En un archivo por lotes,% cd% es el comando más utilizado para el directorio actual, aunque puede establecer su propia variable:
Digamos que desea abrir Myprog.exe. Si estuviera en la misma carpeta, usaría el comando:
Eso abriría Myprog desde la carpeta actual.
La otra opción es hacer un directorio en C: llamado AutomatePrograms. Luego, transfiere sus archivos a esa carpeta y luego puede abrirlos con el siguiente comando:
fuente
%cd%
es variable, por lo que ejecutar el archivo por lotes desde el Explorador de Windows como administrador le dará loC:\WINDOWS\system32
que casi seguro no es lo que desea.%~dp0
Es más consistente.Digamos que estaba abriendo un archivo en su directorio actual. El comando sería:
Espero haber respondido tu pregunta.
fuente
Es el directorio desde donde ejecuta el comando para ejecutar su archivo por lotes.
Como se menciona en las respuestas anteriores, puede agregar el siguiente comando a su script para verificar:
fuente
Es el directorio desde donde inicia el archivo por lotes. Por ejemplo, si su lote está dentro
c:\dir1\dir2
y usted lo hacecd c:\dir3
, entonces ejecute el lote, el directorio actual estarác:\dir3
.fuente
Solo mis 2 centavos. El siguiente comando falla si se llama desde un archivo por lotes (Windows 7) colocado en pendrive:
Pero esto hace el trabajo:
fuente
%~dp0