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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Temas
Páginas: 1 [2] 3
11  Programación / Scripting / Problema al guardar nombre de archivo en variable (batch) SOLUCIONADO en: 17 Septiembre 2009, 06:04 am
Qué tal amigos del foro! Otra vez yo por aquí.

Acabo de toparme con un detallito que me complica la vida. Resulta que tengo un .txt que contiene enlistados los nombres de varios archivos en una carpeta. Luego recupero esos nombres y los guardo en una variable tipo matriz (o como se le llame), para lo cual uso el comando CALL SET dentro de un ciclo FOR, como me enseñaron aquí.

En fin, el problema es que hay archivos que tienen un espacio al inicio del nombre, pero la variable del FOR (%%a) se lo quita, lo que me deja ineficiente el script.

Déjenme mostrárselo:

Supongamos que esta es mi lista (Lista.txt):
Código:
Archivo1.txt
Archivo2.txt
 Archivo3.txt
Archivo4.txt

Como ven, la línea 3 tiene almacenado el nombre de un archivo, pero ese espacio al inicio no es un error al crear la lista, sino que el archivo se llama así: " Archivo3.txt".
Ok. Entonces, para crear mi variable con los valores de cada línea hago esto:

Código:
set lin=0
for /f "tokens=*" %%a in (Lista.txt) do (
       set /a lin+=1
       call set list!lin!="%%a"
)

En este punto la variable list ya contiene el nombre de cada línea por separado, pero con el detalle de que la línea tres no se guardó así: " Archivo3.txt", como debería, sino así: "Archivo3.txt", lo cual inevitablemente me produce un error posteriormente.

Pues bien, tras haber analizado de dónde surge el error, noté que es en la variable del FOR (%%a); esta no se trae el valor con el espacio en blanco inicial, sino que lo quita. Por eso luego se guarda en la variable list de ese modo.

Así pues, ¿qué medida puedo tomar para recuperar el texto de la línea 3 tal cual como está en List.txt, con su respectivo espacio en blanco inicial? De verdad agradezco previamente su valiosa ayuda.
12  Programación / Scripting / Cómo convertir mayúsculas a minúsculas y viceversa en Batch. Ayuda!! en: 11 Septiembre 2009, 20:06 pm
Saludos compañeros del foro.

Tengo un pequeño problemita. Estoy intentando comparar una ruta introducida a mano en un archivo por lotes con una ruta que obtengo del sistema, y resulta que la que el sistema me da viene en mayúsculas, de modo que en la sentencia If en que las comparo no coinsiden, y no se ejecuta el código, por supuesto.

Así pues, me gustaría saber cómo hacer para tomar la ruta que el usuario indico (que está almacenada en una variable) y convertirla a mayúsculas antes de compararlas. ¿Se puede? Agradezco su ayuda.
13  Programación / Scripting / Problema con símbolos ( \, ", etc) almacenados en variable en: 26 Agosto 2009, 01:22 am
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

Código:
If %variable% == 123

o también

Código:
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.
14  Programación / Scripting / Cómo diferenciar un directorio de un archivo en: 25 Agosto 2009, 05:12 am
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.
15  Programación / Scripting / Cómo contar número de caracteres del valor contenido en una variable SOLUCIONADO en: 24 Agosto 2009, 23:04 pm
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.
16  Programación / Scripting / Cómo almacenar una línea específica de un .txt en una variable SOLUCIONADO! en: 24 Agosto 2009, 00:23 am
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:

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

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

Código:
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.
17  Programación / Scripting / Cómo extraer valor fraccionado de una variable SOLUCIONADO! en: 23 Agosto 2009, 07:07 am
Hola de nuevo compañeros del foro. He regresado otra vez a pedir su ayuda.

Esta vez necesito saber cómo extraer una fracción del valor que tiene almacenado una variable. Por ejemplo, si mi variable %var% tiene como valor ABCD, ¿cómo tomo el AB nada más, o el CD? ¿Sí hay manera de hacerlo?

Ojalá puedan volver a darme su ayuda.
18  Programación / Scripting / Cómo tomar atributos de archivo y mostrarlos con Echo SOLUCIONADO en: 23 Agosto 2009, 01:41 am
Qué tal compañeros?

Esta vez tengo este problema: necesito tomar los atributos de un archivo para mostrarlos en un mensaje pero no sé cómo hacerlo. Sé que el comando attrib seguido del nombre del archivo me muestra sus atributos, pero necesito tomar ese valor. ¿Sabrá alguno cómo hacerlo? Les estaré muy agradecido.
19  Programación / Scripting / Problema al comparar variable de valor string con letra SOLUCIONADO en: 21 Agosto 2009, 07:18 am
Qué tal estimados foristas? Reciban de nuevo mi saludo.

Resulta que llevo varias horas dándome golpes con otro asunto, pero nada que le hallo solución, aunque supongo que es fácil.

Esta vez se trata de comparar el valor de una variable (el valor es una letra) con una letra específica. Debería ser sencillo, pero resulta que no funciona igual que con números. Bueno, al menos a mí no me funciona.

El problema se me presenta así:

Código:
set var=A
Código:
If %var%==A goto X...

Así de simple es. Ya he verificado el valor de %var% y está bien, pero el problema es que no se ejecuta el comando que le asigno al cumplirse la condición (goto X). Así pues, supongo que lo que está mal es la manera en que evalúo el valor de %var% (%var%==A).

¿Me podrían ayudar en eso? ¿Qué estoy haciendo mal?

Nota del MOD:
Los códigos con sus respectivas etiquetas.
20  Programación / Scripting / Cómo asigno el valor de una variable en BACH a una clave de registro SOLUCIONADO en: 18 Agosto 2009, 03:06 am
Hola a todos otra vez! De nuevo me veo en la necesidad de que acudir a uds para aprender más.

Resulta que estoy editando el valor de una clave de registro a través de un .bat, lo cual he hecho muchas veces, pero en esta ocasión necesito asignarle el valor de una variable a dicha clave. Les daré un ejemplo del código del .bat:

Código:
set variable1=He aquí el valor que quiero asignar a la clave
Código:

reg add HKLM\SYSTEM\ControlSet001\Control /v Clave1 /t reg_expand_sz /d %Variable1% /f

Bien, con esto debería asignar el valor de Variable1 (He aquí el valor que quiero asignar a la clave) a la clave Clave1, pero en vez de eso me sale un mensaje de error.
Acabo de probar, y noté que el error se presenta porque el valor de Variable1 tiene espacios en blanco. Así pues, necesito saber qué debo hacer para asignar dicho valor con espacios a la clave. Les agradeceré mucho su ayuda!


Quiero aclarar que no se trata de colocar EL NOMBRE de la variable como valor de la clave, sino su valor. O sea,

Variable1 = He aquí el valor

Clave1 = He aquí el valor


No quiero esto:

Variable1 = He aquí el valor

Clave1 = %Variable1%


Con esta linea:

reg add HKLM\SYSTEM\ControlSet001\Control /v Clave1 /t reg_expand_sz /d %%Variable1%% /f

solo lograré que el valor de Clave1 sea = %Variable1% y no es lo que busco.
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines