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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Scripting / Leer archivo .txt y hacer operación matemática en: 8 Junio 2020, 21:47 pm
Saludos, necesito ayuda con esto...

Tengo un archivo de texto así:

Lista.txt
Código
  1. UG5Jy 29650 27390
  2. PlAyc 20496 19243
  3. fPNSN 91499 82435
  4. Twu84 20148 18933
  5. DsYYl 94566 85165
  6. m2gIt 77582 70049
  7. u3s7R 23223 21670
  8. PMFKJ 61930 56119

Código
  1. VARX=45
  2. echo ¿Cuál es tu ID?
  3. Set /P "ID=
"

(Acá quiero que si el usuario introduce un ID de la lista del. txt, por ejemplo que haya colocado u3s7R, que establezca segundo grupo de caracteres como variable A y tercero como B, quedando tipo:

A=23223
B=56119

Para posteriormente ejecutar una especie de fórmula...
Código
  1. Final=(VARX *A) - B
  2. echo %FINAL%
12  Programación / Scripting / Re: Sumar números de un .txt en Batch en: 8 Junio 2020, 06:26 am
Saludos,

- CMD no soporta aritmética con decimales, podrías utilizar métodos complejos extrayendo los decimales para tratarlos por separado ..., o mejor llamar a otra aplicación nativa para que haga el trabajo ya sea parcial o completamente, en este caso PowerShell que ya viene desde Windows 7 o WScript que ya viene desde Windows 98, recomendaría PowerShell ya que es mucho más sencillo y directo:

-- Suponiendo que exista el archivo numeros.txt en la carpeta actual

Terminé solucionando tomando tu idea, seguí haciendo todo en batch, pero con un truquito....

Dentro de mi batch creé el archivo ps1 así:

Código
  1. Echo . |set /p="ForEach ($n in Get-Content .\total.txt) { [Double]$total += $n }; Write-Host $total">>total.ps1 2>&1

dentro del mismo batch ejecuto el comando powershell siguiente:

Código
  1. Powershell.exe -executionpolicy remotesigned -File  total.ps1>>f.txt 2>&1
Ese comando me genera un archivo de texto f.txt que contiene el total

Luego leo el archivo f.txt y el contenido le asigno la variable DOLARES
Código
  1. (
  2. set /p DOLARES=
  3. )<f.txt

Luego elimino los dos archivos f.txt y total.ps1

Código
  1. del "f.txt" /s /f /q
  2. del "total.ps1" /s /f /q
  3.  

y %DOLARES% imprime la cantidad con decimales, y todo dentro de batch, quien lo ejecuta ni cuenta se da que pasa por powershell :D

Gracias por darme esa idea amigo!





13  Programación / Scripting / Re: Sumar números de un .txt en Batch en: 6 Junio 2020, 00:30 am
Encontré la forma, así:

Código
  1. for %%F in (
  2.  total.txt
  3.  
  4. ) do (
  5.  set /a DOLARES=0
  6.  for /f "usebackq  delims=," %%a in ("%%F")  do set /a DOLARES+=%%a
  7.  
  8. )
  9.  

pero como dices, me da problema con los decimales...

Encontré la forma con este código de que haga operaciones y me acepte decimales:

Código
  1. :_calc
  2. setlocal enabledelayedexpansion
  3. if "%~1" EQU "add" set "sym=+"
  4. if "%~1" EQU "sub" set "sym=-"
  5. set "add_str=%~2"
  6. set "add_str=!add_str:%sym%= !"
  7. set/a hst=0,cnt=0,add=0
  8. for %%_ in (%add_str%) do (
  9.   set/a dec[!cnt!]=0
  10.   for /f "tokens=2 delims=." %%. in ("%%_") do (
  11.      call :_strlen "%%."
  12.      set/a dec[!cnt!]=!errorlevel!
  13.      if !errorlevel! GTR !hst! set/a hst=!errorlevel!
  14.   )
  15.   set/a cnt+=1
  16. )
  17. set/a cnt=0
  18. if "%sym%" EQU "-" for %%_ in (%add_str:.=%) do (
  19.   set/a pow=%hst%-%dec[0]%,n_b=%%_
  20.   for /l %%. in (1,1,!pow!) do set "n_b=!n_b!0"
  21.   set/a add+=!n_b!*2
  22.   goto :__op
  23. )
  24. :__op
  25. for %%_ in (%add_str:.=%) do (
  26.   call set/a pow=%hst%-%%dec[!cnt!]%%,n_b=%%_
  27.   for /l %%. in (1,1,!pow!) do set "n_b=!n_b!0"
  28.   set/a add%sym%=!n_b!,cnt+=1
  29. )
  30. set "res=!add:~0,-%hst%!.!add:~-%hst%!"
  31. if %hst% EQU 0 set "res=%res:~1%"
  32. endlocal & set "%~3=%res%" & exit /b
  33. :_strlen
  34.   setlocal
  35.   set/a cnt=0
  36.   for /f "tokens=* eol=" %%_ in (
  37.      '"cmd /u /c echo:%~1|more"'
  38.   ) do set/a cnt+=1
  39.   endlocal & exit /b %cnt%

y dentro del batch para invocar el código para hacer cualquier operación se llamaría de la siguiente manera:

Código
  1. call:_calc add 2.3658+8.4102+14.61 var
  2. echo:%var%

Lo que no sé es como incorporar eso el resultado del conteo de líneas...



Pero no sé como hacer el llamado para que me funcione con la sumatoria de las líneas...

Intenté esto, pero NO funciona, no logro comprender la lógica del código...
Código
  1. ) do (
  2.  set /a DOLARES=0
  3.  for /f "usebackq  delims=," %%a in ("%%F") do call:_calc add DOLARES+=%%a
  4.  
  5. )

14  Programación / Scripting / Sumar números de un .txt en Batch en: 5 Junio 2020, 20:06 pm
Buenas tardes, reciban un cordial saludo.

Tengo una duda, tengo un batch que me da como salida un archivo llamado total.txt y cada línea tiene un número, me gustaría sumar el total de ese archivo y me lo imprimiera en pantalla, es decir si el archivo tiene

5.5
2.5
3
4

que imprima TOTAL: 15
15  Programación / Scripting / Re: PYTHON - Script generador de enlace a partir de URL en: 7 Abril 2020, 16:19 pm
Muchas gracias por responder y por compartirme ese código que es exactamente a lo que me refería...

Soy muy novato, déjame entender mejor el código...
- Pide el enlace al usuario
- Extrae de ese enlace el ID y RISN
- Crea una variable llamada nOpcion que dependerá del número de opción que introduzca el usuario para extraer del archivo enlaces.txt el número de línea
- Luego imprime en la pantalla el enlace extrayendo los datos.

y todo en prácticamente 15 líneas y un archivo de texto? :O

me parece increíble!!!!!
Voy a probar el código!

No he podido probar el código bien, al ejecutarlo y colocar el número de opción se cierra.
He intentado usar el while para agregar la función de bucle pero lo que hago es dañar el código, quisiera que al imprimir en la pantalla el resultado al presionar cualquier tecla regrese al inicio donde nuevamente pide introducir el enlace... en python no termino de entender el while, en batch era solamente decirle a través de goto para indicarle hasta donde ir... Acá cuando lo intento el código se daña y deja de funcionar y no abre :(

EDITO: Gracias, ya terminé de hacer todo! quedó todo listo lo que necesitaba partiendo de tu código nuevamente te agradezco, voy a chequear los enlaces que me dejaste, interesante todo y me di cuenta que muy sencillo entender el código, y leyendo aquí y allá se pueden armar lo necesario, seguiré leyendo a ver que tan difícil que en lugar de leer el archivo .txt lo lea desde un directorio en github.
16  Programación / Scripting / PYTHON - Script generador de enlace a partir de URL en: 4 Abril 2020, 19:36 pm
Buenas muchachos, estoy creando un pequeño script generador de enlaces para un pequeño proyecto, pero tengo ciertos problemas, ya les dejo el código y explico...

Antes les quiero dejar claro que soy nuevo y no soy programador, quería hacer esto y primero pregunté sobre que lenguaje me recomendaban, me decidí por Python, y ahora que comencé a hacerlo tengo las siguientes dudas:

Código
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import pyperclip
  4. import os
  5.  
  6. def generar():
  7.  while True:
  8.    ID = enlace[47:83]
  9.    RISN = enlace[94:101]
  10.    enlace = input("Introduce tu enlace: ")
  11.  
  12. enlace = int(input("Introduce el numero de opcion"))
  13.  
  14. if enlace == 1:
  15.  pyperclip.copy("https://www.testlink1.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-arVMfISNyX8JrXmCeJCU")
  16.  generar()
  17. elif enlace == 2:
  18.  pyperclip.copy("https://www.testlink2.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-NAJ8WZR6XD7QVgrXF5wo")
  19.  generar()
  20. elif enlace == 3:
  21.  pyperclip.copy("https://www.testlink3.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-nRnAdKgiU5o2W8eKg5NE")
  22.  generar()
  23. elif enlace == 4:
  24.  pyperclip.copy("https://www.testlink4.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-uMZn75Og4QV0m7f8jZaF")
  25.  generar()
  26. elif enlace == 5:
  27.  pyperclip.copy("https://www.testlink5.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-48BCshoVUnc1fke2KUDU")
  28.  generar()
  29. elif enlace == 6:
  30.  pyperclip.copy("https://www.testlink6.us/gener/NewClient.aspx?RIS=10&RID={ID}&RISN={RISN}&HashKey=-tXEY8FstklVEtidUXprl")
  31.  generar()

El código es muy sencillo, el usuario introduce un enlace (que siempre será del mismo formato como este:

Código
  1. https://www.testlink0.es/s/UnnScreen.aspx?SSID=5e6d8acd-fb5d-ca77-0339-ade98384ed7f&SuID=b72747264867&zToken=af416b63-ca8e-4574-a72f-c0a85dda74d1

y leerá del carácter 47 al 83 para obtener la variable ID, y luego leerá del carácter 94 al 101 para obtener la variable RISN, luego el usuario dirá que enlace quiere generar seleccionando el número de enlace, y si selecciona 1 el script tomará la opción 1, y a ese enlace va introducirle las variables extraídas del enlace inicial y así obtendrá el enlace final, hasta acá creo que redacté claro lo que hace, ahora... El problema...

El programa necesito colocarle más de 400 enlaces diferentes, allí en el ejemplo coloqué solamente 6, y sería bien tedioso armar el código con 400 enlaces distintos o más, lo que se me ocurre (y no sé si sea posible), colocar los enlaces en un archivo .txt y decirle a Python que si el usuario selecciona la opción 1 lean en el archivo la línea 1, si selecciona la opción 2, lea en el archivo la opción 2, y así sucesivamente, ¿Es esto posible? ¿o alguna sugerencia para simplificar el código y que sea más fácil colocar el montón de enlaces?
17  Programación / Programación General / Re: Generador de enlaces ¿Con que lenguaje puedo comenzar? en: 1 Abril 2020, 00:44 am
Hola:
        python es compatible entre windows y linux, entre otros, pero hay 2 problemas como mínimo 1-es que en windows no viene por defecto instalado, así que el usuario debe tenerlo o en todo caso  vos generas un .exe para que lo use sin tener python
2- como acceder al portapapeles es diferente en windows y en linux, hay para eso bibliotecas que lo solucionan, pero volvemos al primer problema, ambos tienen que tenerlas, aunque creo tkinter, que viene por defecto funciona en ambos, pero no te lo puedo asegurar porque no uso linux

lo que has hecho, es muy simple en python.

Pues ya me diste la primera idea, justo estaba tomando ejemplos en codepen.io y ver si lograba modificar algo de allí y hacer lo que hice pero en JS, porque montar eso en una página web tampoco es tan mala idea.

Pero lo de Python me parece bien, lo del .exe es una solución o si hay alguna librería que deban descargar o pasos a seguir es lo de menos, porque puedo dejar un tuto explicando que hacer para que funcione y ya...

¿Me das una mano para comenzar en Python? ¿Algún URL de algún sitio donde pueda ver ejemplos y partiendo de ahí empezar?

Edito:
Ya he comenzado a leer y darme una vueltas por varios foros, no parece muy difícil, y así llevo la cosa:

Código:
#!/usr/bin/python
# -*- coding: utf-8 -*-
   
enlace = input("Introduce tu enlace: ")
ID = enlace[47:83]
RISN = enlace[94:101]

final = input("Introduce el número de enlace que te tocó ")

if final=="1": print ("https://https://enlacegeneradoA.com/funcion={ID}&token={RISN}")
if final=="2": print ("https://https://enlacegeneradoB.com/funcion={ID}&token={RISN}")
if final=="3": print ("https://https://enlacegeneradoC.com/funcion={ID}&token={RISN}")

Hasta ahora funciona bien lo de introducir el enlace y partiendo del enlace lograr sacar los valores ID y RISN, ahora no logro que al usuario presionar 1 me genere el enlace ya armado con el ID y RISN, y luego de eso viene lo de agregar la función de copiar en el portapapeles... Seguiré investigando y probando, al rato me doy una vuelta por acá a ver que me han respondido..
18  Programación / Programación General / Generador de enlaces ¿Con que lenguaje puedo comenzar? en: 31 Marzo 2020, 22:51 pm
Buenas tardes, un saludos a toda la comunidad, recien me he registrado porque le dí un ojo a google y terminé por acá leyendo como la comunidad ayuda los usuarios con dudas y veamos si me pueden ayudar.

Hice algo en batch, pero me gustaría hacerlo en algo más universal que sirva también para usuarios de Linux

Código:
@Echo off
:inicio

:enlace
echo Introduce tu enlace:
Set /P "ENLACE= "

:ID
REM recibe el enlace y le elimina 47 digitos al Inicio
SET ID=%ENLACE:~47%
REM Ahora tengo en la variable ID para el enlace que se generará

:Menu
cls
Echo.
set /p menup= Selecciona el número correspondiente a la opción que quieres:

echo 1-OpciónA
echo 2-OpciónB
echo 3-OpciónD
if %menup%==1 goto 1
if %menup%==2 goto 2
if %menup%==3 goto 3

1:
cls & Echo Enlace generado & echo . |set /p="https://enlacegeneradoA.com/funcion=%ID%" | CLIP & Echo Enlace copiado al portapapeles & pause & cls & goto inicio

2:
cls & Echo Enlace generado & echo . |set /p="https://enlacegeneradoB.com/funcion=%ID%" | CLIP & Echo Enlace copiado al portapapeles & pause & cls & goto inicio

3:
cls & Echo Enlace generado & echo . |set /p="https://enlacegeneradoC.com/funcion=%ID%" | CLIP & Echo Enlace copiado al portapapeles & pause & cls & goto inicio


Basicamente el programa solamente pedirá un enlace, a ese enlace le quitará x cantidad de dígitos al inicio y al final para así obtener un ID, y el usuario según la opción que seleccione le generará un enlace que llevará el ID generado y lo copiará al portapapeles.

Eso lo hice en batch que es lo que aprendí leyendo en Internet y funciona perfectamente para usuarios de Windows, pero los usuarios de linux no les sirve, y quiero hacer eso mismo de modo que funcione para todos, no sé que me recomienden tomando en cuenta que soy experto, podría ser en algún lenguaje web o no sé que sugieren...


Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines