Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Lekim en 11 Marzo 2016, 16:15 pm



Título: Consola de windows: Problema directorio en cuenta Administrador
Publicado por: Lekim en 11 Marzo 2016, 16:15 pm
Hola

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

Código:
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

Código:
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 :

Código:
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?

 


Título: Re: Consola de windows: Problema directorio en cuenta Administrador
Publicado por: Eleкtro en 11 Marzo 2016, 16:51 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%.



Dice 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.



¿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
  1. @Echo OFF
  2. Start "" "%~dp0Archivo.ext"
  3. 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
  1. @Echo OFF
  2. PUSHD "%AppData%"
  3. Echo Directorio actual: "%CD%"
  4. Pause & Exit /B 0

Saludos!


Título: Re: Consola de windows: Problema directorio en cuenta Administrador
Publicado por: Lekim en 11 Marzo 2016, 16:59 pm
Funciona perfecto gracias Elektro.