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?
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:
@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:
@Echo OFF
PUSHD "%AppData%"
Echo Directorio actual: "%CD%"
POPD
Pause & Exit /B 0
Saludos!
Funciona perfecto gracias Elektro.