Autor
|
Tema: Comprobar directorios. Problema con espacios (de nuevo) (Leído 3,058 veces)
|
supertxull
Desconectado
Mensajes: 5
|
Buenas a tod@s. He acabado aquí tras buscar una y otra vez sin resultado... El caso es que quiero generar un directorio siempre y cuando no exista. ¿Cual es el problema? Como podréis imaginar, si el directorio contiene espacios, no funciona mi script. set "proy=" cls SET /P proy=Introduce el nombre del directorio: echo %proy% if "%proy%" EQU "" goto menu1 if "%proy%" EQU " " goto menu1 IF NOT EXIST %proy%\NUL (echo OK, no existe) else (echo NO, ya existe) ping -n 5 0.0.0.0 > nul goto menu1 ¿Puede alguien echarme un cable con el asunto? Gracias de antemano.
|
|
« Última modificación: 17 Febrero 2017, 10:34 am por supertxull »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
si el directorio contiene espacios, no funciona mi script. Para evitar errories de sintaxis debes encerrar los argumentos/directorios con espacios entre comillas dobles. :menu1 cls SET /P "proy=Introduce el nombre del directorio: " )
Hazlo siempre tengan espacios o no, y así evitarás posibles errores. Saludos!
|
|
« Última modificación: 15 Febrero 2017, 16:28 pm por Eleкtro »
|
En línea
|
|
|
|
supertxull
Desconectado
Mensajes: 5
|
Para evitar errories de sintaxis debes encerrar los argumentos/directorios con espacios entre comillas dobles. Hazlo siempre tengan espacios o no, y así evitarás posibles errores. Saludos!
Muchas gracias por tu ayuda pero, el caso es que no funciona; siempre pasa a Ok, no existe exista o no. Creo que el problema está en el IF NOT EXIST "%proy%\NUL" pero no sé cómo arreglarlo.
|
|
« Última modificación: 17 Febrero 2017, 09:18 am por supertxull »
|
En línea
|
|
|
|
supertxull
Desconectado
Mensajes: 5
|
RESUELTO!He optado por probar con otro código y funciona. Lo dejo por aquí por si es de utilidad para alguien más. Hasta otra y gracias. set "proy=" set "folder=" cls SET /P "proy=Introduce el nombre del directorio: " For /F "tokens=*" %%a in ('Dir /B /A:D') do ( Set "folder=%%a" if "%proy%"=="%%a" (goto error) )
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Hola. Si te fijas, en el código que mostré, en esta linea:
La dejé así, tal y como estaba escrita en el primer código que tu mostraste, por que eso me dió a entender que tu querías buscar un directorio llamado "Nul" (a pesar de que sea un nombre ilegal en Windows) dentro del directorio que especificases en la variable %proy%. Es decir, que si en la variable %proy% especificas "Manolo", el código debía buscar un directorio llamado "Nul" dentro del directorio "Manolo". Con el último código que has mostrado parece que aquello que escribiste de "%proy%\Nul" era simplemente por que estuviste probando cosas aleatorias o no se... En fin, para corregirlo solo debes modificar esa linea para dejar el código que te mostré así: :menu1 cls SET /P "proy=Introduce el nombre del directorio: " )
¡Saludos!.
|
|
« Última modificación: 22 Febrero 2017, 05:15 am por Eleкtro »
|
En línea
|
|
|
|
supertxull
Desconectado
Mensajes: 5
|
Hola.
Si te fijas, en el código que mostré, en esta linea:
La dejé así, tal y como estaba escrita en el primer código que tu mostraste, por que eso me dió a entender que tu querías buscar un directorio llamado "Nul" (a pesar de que sea un nombre ilegal en Windows) dentro del directorio que especificases en la variable %proy%. Es decir, que si en la variable %proy% especificas "Manolo", el código debía buscar un directorio llamado "Nul" dentro del directorio "Manolo". Con el último código que has mostrado parece que aquello que escribiste de "%proy%\Nul" era simplemente por que estuviste probando cosas aleatorias o no se...
En fin, para corregirlo solo debes modificar esa linea para dejar el código que te mostré así:
¡Saludos!.
Vaya, muchas gracias por la aclaración. Imaginé que NUL era la condición de retorno del NOT EXIST Estaré más atento la próxima vez.
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Hola de nuevo . No quiero ser pesado pero ya que has mencionado ese detalle, en Batch no puedes especificar arbitrariamente True ni False para evaluar condicionales, eso es algo que se evalua en segundo plano de forma abstracta. Si tu propósito era usar NUL con el propósito real que tiene dentro del lenguaje Batch, entonces aquí puedes hallar más info relevante al respecto: Saludos!
|
|
« Última modificación: 22 Febrero 2017, 11:05 am por Eleкtro »
|
En línea
|
|
|
|
supertxull
Desconectado
Mensajes: 5
|
Hola de nuevo . No quiero ser pesado pero ya que has mencionado ese detalle, en Batch no puedes especificar arbitrariamente True ni False para evaluar condicionales, eso es algo que se evalua en segundo plano de forma abstracta. Si tu propósito era usar NUL con el propósito real que tiene dentro del lenguaje Batch, entonces aquí puedes hallar más info relevante al respecto: Saludos! ¿Pesado? para nada, muchísimas gracias. Me viene de perlas.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema al leer cadenas con espacios [C++]
Programación C/C++
|
Don Pollo
|
3
|
21,757
|
20 Mayo 2011, 03:49 am
por Lx
|
|
|
Problema con espacios de un string
Programación C/C++
|
danibdn
|
1
|
2,917
|
7 Junio 2011, 03:41 am
por Fer995
|
|
|
[C] Problema - Captar espacios
Programación C/C++
|
Caballo_Alado
|
3
|
3,122
|
8 Marzo 2012, 13:48 pm
por satu
|
|
|
Problema al leer cadena con espacios?
Programación C/C++
|
1mpuls0
|
7
|
6,094
|
2 Abril 2014, 18:42 pm
por amchacon
|
|
|
Hallar directorios con espacios C
Programación C/C++
|
Tauron
|
4
|
2,678
|
30 Mayo 2019, 21:42 pm
por RayR
|
|