una - ejecutar cmd como administrador windows 10
El comportamiento de% CD% variable es diferente cuando se hace clic derecho y se usa ejecutar como administrador (2)
¿Confunde el directorio actual / de trabajo con el directorio en el que se encuentra su archivo por lotes?
Si tengo un archivo por lotes simple con solo
@echo off
echo %cd%
y esto se almacena en c: / foo / bar / test.cmd
En cmd ejecuto
cd c:/foo
bar/test
test.cmd imprimirá c:/foo
y no c:/foo/bar
Supongo que UAC usa system32 ya que es posible elevarlo con un usuario diferente y ese usuario podría no tener acceso a lo que sea que sea el directorio actual.
Si quiere el directorio en el que se encuentra su archivo por lotes, use% ~ dp0, si quiere el directorio actual, use. o% CD%
Tengo un archivo cmd de Windows que está utilizando la variable de entorno% CD% para determinar el directorio de ejecución del archivo cmd.
Cuando ejecuto el archivo cmd desde la línea de comandos, funciona correctamente, lo que significa que la variable% CD% contiene el directorio de trabajo. Si hago doble clic en el cmd, también funciona como esperaba. Sin embargo, si hago clic con el botón derecho en el archivo cmd y selecciono el administrador de runas, la variable% CD% contiene el valor "C: / Windows / system32", no el directorio actual donde se está ejecutando el cmd.
Pude reproducir el problema con el siguiente script:
echo %CD%
pause
Tratando de usar %~dp0
lugar de %cd%
... esto debería darle el directorio que contiene el script de lotes (NT shell) desde el cual se lanzó.