[batch] problema con variables y espacios[Solucionado]

Iniciado por corax, 10 Octubre 2009, 11:06 AM

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

corax

buenos días a todos

estoy intentando hacer una herramienta bastante simple en batch que abra una carpeta si se llama igual que el archivo bat que se esté ejecutando

para eso estoy usando el código:

If exist %~d0%~p0%~n0\ (start %~d0%~p0%~n0\) else (echo la carpeta no existe&pause>nul)


y funciona... excepto con aquellas rutas que tienen espacios, como C:\Documents and Settings, por ejemplo

creo que debe haber una solución, pero por más vueltas que le doy, no se la encuentro... ¿a alguien se le ocurre cómo podría solucionarse?

gracias por adelantado
Nuestro idioma ha tardado 12 siglos en llegar hasta hoy día. Tú tan sólo tardas 20 segundos en escribir un post: no destroces en tan poco tiempo lo que tantos siglos ha costado crear.

FranciskoAsdf

Para que las rutas con ESPACIOS no te den problemas, debes encerrarlas entre comillas dobles , así :

"C:\Tengo Calor en el trabajo\mi jefe apesta xD\"

ves ? ^^, es super simple.
Código (dos) [Seleccionar]

If exist "%~d0%~p0%~n0\" (start "%~d0%~p0%~n0\") else (echo la carpeta no existe&pause>nul)

asi debeeria funcionar el code, pero si no , quitale las comillas dobles al commando start


Saludos y espero que te sirva ^^
Asdf debería ser algún tipo de función.

corax

Gracias por la respuesta.
Lo de usar comillas dobles ya lo había probado, pero al hacerlo no abre la carpeta, sino que salta otra consola de comandos  :-\
Nuestro idioma ha tardado 12 siglos en llegar hasta hoy día. Tú tan sólo tardas 20 segundos en escribir un post: no destroces en tan poco tiempo lo que tantos siglos ha costado crear.

leogtz

Según el código de Panxin.boo, prueba así:
If exist "%~d0%~p0%~n0\" (start "" /b "%~d0%~p0%~n0\") else (echo la carpeta no existe
pause>nul
)
Código (perl) [Seleccionar]

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

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

corax

Nuestro idioma ha tardado 12 siglos en llegar hasta hoy día. Tú tan sólo tardas 20 segundos en escribir un post: no destroces en tan poco tiempo lo que tantos siglos ha costado crear.