Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - <ИΘZIЭ(ŦB>

#71
Nada pana! Lo copié y pegué y sigue tomando la segunda opción. No entiendo.
#72
Amigo, sigue sin funcionar. ¿Ya lo probaste?
#73
No funciona. Mira:


set /p ruta=Escriba la ruta:
set cont=0
goto Contar

:Contar
setlocal enabledelayedexpansion
if "!ruta:~%cont%,1!" neq "" set /a "cont+=1" & set uc="!ruta:~%cont%,1!" & goto Contar
endlocal
goto AoC

:AoC
If ["%uc%"]==["\"] (
   echo Es slash
   pause
)
If ["%uc%"] neq ["\"] (
   echo No es slash, es %uc%
   pause
)


Eso es lo que tengo. No funciona porque aunque el último caracter es \ (almacenado en %uc%) sólo entra en el segundo If, como si no lo fuera.

¿Qué hice mal?
#74
Hola a todos otra vez.

Amigos, tengo este problema: necesito saber si una de mis variables tiene un símbolo como valor almacenado, pero no sé cómo inquirirlo. Cuando se trata de una letra, texto normal o números, basta con escribir

If %variable% == 123

o también

If %variable% == texto

etc. Pero cuando intento hacer lo mismo con un símbolo (ya me ha pasado con el slash [/] y la comilla ["]) no funciona, supongo que porque son caracteres especiales dentro del BATCH.

Así pues, mi pregunta es: ¿cómo se deben escribir esas sentencias dentro del IF?
Por favor, agradezco su ayuda.
#75
Buenas noches compañeros. Bueno, no sé que horario tengan uds, pero aquí es de noche. Saludos.

Quisiera saber si los archivos y directorios tienen agún identificador que los diferencie entre sí, de modo que se pueda verificar a través de un .bat.

Tengo un .bat que pide al usuario definir la ruta de un directorio o archivo, para luego almacenar ese valor en una variable. Lo que necesito ahora es poder saber si la ruta se trata de un archivo o un directorio, pero no sé cómo. Se me ocurrió verificar si la ruta tenía extensión, ya que así sabría que se trata de un archivo, pues los directorios no tienen extensión. No obstante, recordé que hay muchos archivos que tampoco tienen extensión, así que no lo intenté.

Así pues, consideré necesario acudir una vez más a uds a ver si me ayudan. Se los agradezco de antemano.
#76
¡Gracias Matt! Funcionó perfecto. De verdad lo necesitaba.

¡Todos son muy amables en este foro! Les agradezco.
#77
Hola a todos compañeros del foro. Saludos.

Recientemente me he visto en la necesidad de saber cuántos caracteres tiene el valor contenido en una variable. Por ejemplo, si mi variable %variable% tiene como valor HOLA, ¿qué función existe para contar esos cuatro caracteres?

De verdad necesito esa respuesta. Gracias.
#78
¡Listo! ¡Funcionó perfecto! De verdad te agradezco la ayuda, como siempre.

El único detalle fue que no me funcionó dentro de un If. Es decir, hice esto:


If condicion (
     setlocal enabledelayedexpansion

     set c=0
     for /f "tokens=*" %%a in (archivo.txt) do (
           set /a c+=1
           call set lin!c!=Linea_!c! = %%a
     )
     for /l %%n in (1,1,!c!) do (echo !lin%%n!)

     set indice=1
     set "variable=!lin%indice%!"
     echo %variable%
     pause
)


Así no funcionó. Tuve que hacerlo así:


If condicion goto Linea

:Linea
setlocal enabledelayedexpansion

set c=0
for /f "tokens=*" %%a in (archivo.txt) do (
     set /a c+=1
     call set lin!c!=Linea_!c! = %%a
)
for /l %%n in (1,1,!c!) do (echo !lin%%n!)

set indice=1
set "variable=!lin%indice%!"
echo %variable%
pause


Así sí funcionó. Fue el único detalle, tal vez puedas explicar por qué pasó. Sería útil aprender más sobre eso. Por lo demás muchas gracias de verdad. Ah, y no olvides colocar el enlace al otro tema que mencionaste por favor.
#79
De nuevo gracias Leo por la ayuda, pero no me funciona. O sea, no puedo traerme el valor del un índice específico a otra variable, aunque con el Echo sí. No obstante, como lo mencioné antes, lo que me interesa es usar ese valor-índice en otra variable.

Mira lo que hice:


@echo off
setlocal enabledelayedexpansion

:reader
set c=0
for /f "tokens=*" %%a in (archivo.txt) do (
           set /a c+=1
           call set lin!c!=Linea_!c! = %%a
)
echo Archivo Leido

for /l %%n in (1,1,!c!) do (echo !lin%%n!)

endlocal

set indice=1
set "variable=!lin%indice%!"
echo %variable%
pause


Y este es el resultado que me dió:


Archivo Leido
Linea_1 = Texto 1
Linea_2 = Texto 2
!lin1!
Presione una tecla para continuar . . .


¿Ves? ¡No me funciona! No me almacena el texto 2 en %variable%, sino !lin1!. ¿Es que estoy haciendo algo mal? Te agradezco de antemano. (Ah, y si puedes pon el enlace al tema que mencionaste que no lo encontré por el buscador.)
#80
Saludos amigos foristas!

He estado indagando en la web cómo leer un archivo .txt línea por línea, y he logrado hacerlo. Con el comando Echo se pueden mostrar cada una individualmente.

Ahora, por más que he intentado no he logrado almacenar el texto de una línea específica en una variable. El código que encontré es este:


setlocal enabledelayedexpansion

:reader
set c=0
for /f "tokens=*" %%a in (archivo.txt) do (
           set /a c+=1
           call set lin!c!=Linea_!c! = %%a
)
echo Archivo Leido

for /l %%n in (1,1,!c!) do (echo !lin%%n!)
pause
endlocal


Como ven, puedo ver cada una de las líneas perfectamente, pero no sé cómo almacenar el valor de alguna de ellas en otra variable. Sé que la sentencia call set lin!c!=Linea_!c! = %%a crea una variable que almacena el texto de cada línea por separado, pero no sé cómo tomar esos valores. Nunca he trabajado con variables tipo matriz, así que quisiera pedir su ayuda para poder hacerlo.

Intenté de esta manera, tanteando a ver:

set variable=lin!2!

Trataba de tomar el texto de la línea 2 que la variable tiene almacenada, pero no funcionó. También intenté de este modo, según leí por ahí:

set variable=%%lin%2%%%

pero tampoco funcionó. Así pues, de verdad necesito que me echen una mano, porque como ven, estoy bien perdido! :D Debe ser algo simple, pero me servirá de mucho.