elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Comprobar directorios. Problema con espacios (de nuevo)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Comprobar directorios. Problema con espacios (de nuevo)  (Leído 3,028 veces)
supertxull

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Comprobar directorios. Problema con espacios (de nuevo)
« en: 15 Febrero 2017, 13:54 pm »

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.

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

Mensajes: 9.874



Ver Perfil
Re: Comprobar directorios. Problema con espacios (de nuevo)
« Respuesta #1 en: 15 Febrero 2017, 16:25 pm »

si el directorio contiene espacios, no funciona mi script.

Para evitar errories de sintaxis debes encerrar los argumentos/directorios con espacios entre comillas dobles.

Código
  1. :menu1
  2. set "proy="
  3. cls
  4. SET /P "proy=Introduce el nombre del directorio: "
  5. Echo:"%proy%"
  6. if "%proy%" EQU "" (goto :menu1)
  7. if "%proy%" EQU " " (goto :menu1)
  8. IF NOT EXIST "%proy%\NUL" (
  9.    echo OK, no existe
  10. ) Else (
  11.    echo NO, ya existe
  12. )
  13. ping -n 5 0.0.0.0 > nul
  14. goto :menu1

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 Desconectado

Mensajes: 5


Ver Perfil
Re: Comprobar directorios. Problema con espacios (de nuevo)
« Respuesta #2 en: 15 Febrero 2017, 16:37 pm »

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 Desconectado

Mensajes: 5


Ver Perfil
Re: Comprobar directorios. Problema con espacios (de nuevo)
« Respuesta #3 en: 17 Febrero 2017, 10:32 am »

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.

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

Mensajes: 9.874



Ver Perfil
Re: Comprobar directorios. Problema con espacios (de nuevo)
« Respuesta #4 en: 22 Febrero 2017, 05:02 am »

Hola.

Si te fijas, en el código que mostré, en esta linea:
Código
  1. IF NOT EXIST "%proy%\NUL"

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í:

Código
  1. :menu1
  2. set "proy="
  3. cls
  4. SET /P "proy=Introduce el nombre del directorio: "
  5. Echo:"%proy%"
  6. if "%proy%" EQU "" (goto :menu1)
  7. if "%proy%" EQU " " (goto :menu1)
  8. IF NOT EXIST "%proy%\" (
  9.    echo OK, no existe
  10. ) Else (
  11.    echo NO, ya existe
  12. )
  13. ping -n 5 0.0.0.0 > nul
  14. goto :menu1

¡Saludos!.
« Última modificación: 22 Febrero 2017, 05:15 am por Eleкtro » En línea



supertxull

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Comprobar directorios. Problema con espacios (de nuevo)
« Respuesta #5 en: 22 Febrero 2017, 10:40 am »

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  ;D
Estaré más atento la próxima vez.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.874



Ver Perfil
Re: Comprobar directorios. Problema con espacios (de nuevo)
« Respuesta #6 en: 22 Febrero 2017, 11:02 am »

Hola de nuevo :P. 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 Desconectado

Mensajes: 5


Ver Perfil
Re: Comprobar directorios. Problema con espacios (de nuevo)
« Respuesta #7 en: 22 Febrero 2017, 13:12 pm »

Hola de nuevo :P. 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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema al leer cadenas con espacios [C++]
Programación C/C++
Don Pollo 3 21,721 Último mensaje 20 Mayo 2011, 03:49 am
por Lx
Problema con espacios de un string
Programación C/C++
danibdn 1 2,892 Último mensaje 7 Junio 2011, 03:41 am
por Fer995
[C] Problema - Captar espacios
Programación C/C++
Caballo_Alado 3 3,095 Último mensaje 8 Marzo 2012, 13:48 pm
por satu
Problema al leer cadena con espacios?
Programación C/C++
1mpuls0 7 6,036 Último mensaje 2 Abril 2014, 18:42 pm
por amchacon
Hallar directorios con espacios C
Programación C/C++
Tauron 4 2,645 Último mensaje 30 Mayo 2019, 21:42 pm
por RayR
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines