Consola de windows: Problema directorio en cuenta Administrador

Iniciado por Lekim, 11 Marzo 2016, 16:15 PM

0 Miembros y 1 Visitante están viendo este tema.

Lekim

Hola

Desde una cuenta sin privilegios y  dos archivos uno Start.cmd y otro Prueba.txt en el mismo directorio ejecuto...

Start  "" Prueba.txt

Y el archivo  Prueba.txt se abre.

Pero si lo ejecuto desde una cuenta como administrador, tengo que poner la dirección completa del archivo

Start  "" C:\...\ Prueba.txt

¿Porqué? No entiendo. Para que funcione con el código anterior tengo que "Ejecutar como Administrador", estando en una cuenta con privilegios de Administrador.

Tampoco sirve poner :

Start  ""  %apppath%\Prueba.txt

Dice que no se encuentra el archivo "\Prueba.txt" e ignora %apppath%

¿Cual es el problema?
Gracias




Creo que el problema es que cuando ejecuto el archivo cmd es como si se ejecutara desde C:\windows\system32 que es donde se encuentra cmd.exe

¿Hay alguna manera de no tener que poner el directorio completo y cambiar el directorio desde donde se ejecuta cmd?


Eleкtro

#1
Cita de: Lekim en 11 Marzo 2016, 16:15 PM
Dice que no se encuentra el archivo "\Prueba.txt" e ignora %apppath%

¿Cual es el problema?

Creo que el problema es que cuando ejecuto el archivo cmd es como si se ejecutara desde C:\windows\system32 que es donde se encuentra cmd.exe

Exacto lo primero que debes hacer ante la duda es revisar el directorio de trabajo actual observando el valor de la variable dinámica %CD%.




Cita de: Lekim en 11 Marzo 2016, 16:15 PMDice que no se encuentra el archivo "\Prueba.txt" e ignora %apppath%

Aparte del otro problema, es que no existe ninguna variable de entorno llamada apppath en Windows.




Cita de: Lekim en 11 Marzo 2016, 16:15 PM¿Hay alguna manera de no tener que poner el directorio completo y cambiar el directorio desde donde se ejecuta cmd?

Puedes utilizar la variable de argumento %0 con los modificadores de variable ~dp para extraer la ruta del directorio del script.
Ejemplo:
Código (dos) [Seleccionar]
@Echo OFF
Start "" "%~dp0Archivo.ext"
Pause & Exit /B 0

( si, sin el backsalsh  \   )

Para cambiar el directorio de trabajo actual, puedes utilizar el comando PUSHD (y POPD para restaurarlo)
Ejemplo:
Código (dos) [Seleccionar]
@Echo OFF
PUSHD "%AppData%"
Echo Directorio actual: "%CD%"
POPD
Pause & Exit /B 0


Saludos!








Lekim