Comando CALL [BATCH]

Iniciado por CaronteGold, 21 Septiembre 2009, 00:05 AM

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

CaronteGold



  Buenas, ando haciendo una especie de programa para guardar notas de las diferentes asignaturas, al guardar la nota esta se mete en un .bat, y el cual puedes abrir desde el propio programa.


  Para eso se usa el comando CALL, pero hay que señalar la ruta, y entonces si yo lo uso bien, aunque si muevo de lugar el .BAT ya no funcionaría, mi problema es, si pongo CALL notasfq.bat se supone que en el directorio en el que está el .bat programanotas.bat (por ejemplo) , debería abrir, pues no, da error. Sé que se podría abrir fácil mediante start programanotas.bat, pero me gustaría que saliese en la misma pantalla y no en otra ventana.



  Saludos.

Guerrerohgp

bueno compa, jeje ya probaste solo escribir el nobre del archivo? ;D ;D
si esta en el mismo directorio funkara!
suerte!1

Darioxhcx

call es para llamar archivos .bat y etiketas si mal no recuerdo
type ?
no entiendo muy bien tu pregunta...
saludos

FranciskoAsdf

#3
Lo que quiere hacer el (segun lo que entendi) es llamar el archivo de las notas desde cualquier directorio, pero como el lo cambia de directorio el comando falla (segun lo que entiendo en el post), lo que podrias hacer, o por lo menos lo que hago yo en algunos scripts, guardo las rutas en una carpeta temporal o en algun directorio donde no las borren, por ejemplo:

Tienes el archivo notas.bat y quieres llamar el archivo asdf.bat, pero el archivo notas.bat cambia de directorio mas no el archivo asdf.bat que es el que contiene las notas, lo que puedes hacer es guardar la ruta del fichero asdf.bat en un txt o en lo que quieras y llamarlo cada vez que se necesite el archivo Ej:

Archivo rutaguardada.txt

@SET RutaAsdf="%HomeDrive%\Una\Ruta\Cualquiera\asdf.bat"


y eso lo guardas en el directorio temp de windows (%temp%), pero ahora como guardas la ruta sin pedirle datos a usuario? facil
redireccionas el directorio actual al archivo rutaguardada.txt EJ:

Archivo notas.bat (al principio del archivo)

IF NOT EXIST "%Temp%\rutaguardada.txt" (ECHO @SET RutaAsdf="%CD%">"%Temp%\rutaguardada.txt")



y eso, asi mantienes la ruta siempre y solo haces un call para cargar la ruta al principio del archivo notas.bat


Ren "%Temp%\rutaguardada.txt" *.bat
Call "%Temp%\rutaguardada.bat"
Ren "%Temp%\rutaguardada.bat" *.txt



es un poko engorroso, pero a mi me funciona.-


Saludos y espero que te sirva, si no es lo que necesitabas, explicate mejor y te podremos ayudar mas.
Asdf debería ser algún tipo de función.

leogtz

No probado:
:: Hallar ruta :
cd /d "%homedrive%\"
for /f "tokens=*" %%_ in ('dir /b "mi_bat.bat"') do (
echo %%_
)
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

CaronteGold

  En cuanto esté en mi PC, probaré los códigos. Gracias.


Cómo dice Guerrerohgp, si está en el mismo directorio tiene que funcionar ( y eso es lo que quiero) , pero el caso es que no funciona, por tanto no habría que hacer búsquedas ni nada, solo señalar ej:  notas.bat , y eso al estar en el mismo directorio debe encontrarlo, pero no sé porque da error. Con el comando start abre en una ventana aparte y sale


 Notas: 8   Fecha: XXX


 Pero quiero que en vez de en otra ventana salga en la misma ejemplo:


1. Ver Notas.

(clickeas uno)

Nota: 8  Fecha: xxxxx


Eso, que salga en la misma pantalla.  Y cómo puse con poner call notas.bat, debería funcionar pero no es así..., está mal el código , se necesita algo más ¿?



 Saludos y gracias.



EDITO: Cuando digo mover el .bat, digo mover la carpeta Programa Notas Bat, ejemplo, moverla entera de sitio, por eso digo que lo más cómodo es poner tan solo el nombre del .bat ya que siempre estarán en el mismo directorio.