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 Mensajes
Páginas: 1 ... 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 [563] 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 ... 1254
5621  Programación / Scripting / Re: como eliminar los pif o exe (Virus) Code para Mejorar "Solo Experto en Batch" en: 21 Abril 2015, 21:25 pm
con respecto al code; como lo ves tu

Genericamente hablando y siendo un Batch-Script, el código lo veo de la única manera que lo puedo ver, es decir, simplón, feo, tedioso e ineficiente, pero el empeño que le hayas puesto para desarrollar el código tiene un valor distinto (mayor que el propio código en si mismo).



que le hace falta

1. Organización del código fuente.
El código que has publicado carece de cualquier tipo de estructura, ni organización ni indentación, para ser sincero es horrible analizar el código ya que lo tienes todo muy lineal y "arreu" ...aunque de todas formas las limitaciones de este "lenguaje" apenas dan libertad para estructurar el código debídamente, pero podrías haberlo hecho mucho mejor.

Se que es poco código, pero personálmente soy bastante estricto en ese sentido, no t elo tomes a mal, aparte, tener 3 o 4 bloques de código con nombres tipo "a1", "n", "n1", y que repitan código... también es horrible verlo, y eso sucede por que con Batch no se aprende nada que sea reálmente útil, nada.

Por ejemplo, esto lo repites en dos bloques:
Citar
Código:
:n
cls
@echo off
Echo.
Echo.
echo         Programador Tecnico Computarizado
echo                        BY
echo                *****Rafael Ch*****
Echo.
Echo.
Echo.
echo %1>>1.txt

En lugar de eso, escribe un método rehusable cómo este:

Código:
:WriteHeader :: %1 = Descripción del argumento %1; %2 = Archivo de destino
(
CLS
Echo+
Echo+
Echo:        Programador Tecnico Computarizado
Echo:                       BY
Echo:               *****Rafael Ch*****
Echo+
Echo+
Echo+
Echo "%~1"
)>>"%~2"
Goto :EOF

Y entonces lo usas:
Código:
:n
Call :WriteHeader "%~1" "Archivo.txt"
...

2. Limpieza de código en deshuso.

La variable "PTH" no la utilizas en ninguna parte del código, además de eso repites el código en otros bloques:
Citar
Código:
Set /p PTH=%1

y además lo estás seteando incorréctamente ya que la variable de argumento %1 contiene comillas dobles, así que en todo caso deberías hacerlo así para poder usar luego dicha variable de forma correcta:
Código:
Set /P "PTH=%~1"

Nota: No me he fijado si en el resto del código hay otros comandos en deshuso.

3. Cierre de argumentos.
Cómo norma general los argumentos se delimitan al encontrar un espacio, y hay que encerrarlos con comillas dobles,
por ende, esto no te funcionará en ningún PC cuyo nombre de usuario contenga espacios:
Citar
Código:
Copy %0 %homedrive%\Users\%username%\AppData\Roaming\Microsoft\Windows\SendTo\

Además de eso, también deberías expandir la variable de argumento para eliminarle las comillas dobles y añasírselas tú:
Código:
"%~0"

4. Depurar el código, y utilizar los operadores correctos (de agrupación y redireccionamiento)

Esto es otra de las cosas más horribles que se pueden hacer en Batch, la siguiente linea de código tiene muchos fallos en uno,
la concatenación single-line de tantos comandos y la confusión que eso crea al leerlo,
la ausencia de los operadores de agrupación ( ) crea conflictos y posibles errores de sintaxis al determinar donde se delimita la concatenación de comandos,
utilizar la pipe de redireccionamiento cuando seguramente no es tu intención (ya que el comando attrib no tiene una entrada de datos),
evaluar un string sin encerrarlo con comillas (si uno de los dos strings estuviese vacio o con espacios en el nombre daría error de sintaxis):

Citar
Código:
for /r X:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"

Puedes hacerlo así:
Código:
For /R "X:\" %%i in ("*%%p") Do (
If "%%~zi" EQU "%%s" (
Del /f /q /s /a "%%i" &&^
Md "%%i" ||^
Attrib +h +s +r +a +i "%%i"
)
)

O bien en una sola linea:
Código:
For /R "o:\" %%i in ("*%%p") Do ( If "%%~zi" EQU "%%s" ( (del /f /q /s /a "%%i" && md "%%i" || attrib +h +s +r +a +i "%%i") ) )

5. Simplificación de código.

Debes tratar de evitar hacer cosas cómo esta repetición de código:

Citar
Código:
for /r o:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r n:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r m:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r l:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r k:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r j:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r i:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r h:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r g:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r f:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r e:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r d:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"
for /r c:\ %%i in (*%%p) do If %%~zi EQU %%s del /f /q /s /a "%%i" && md "%%i" | attrib +h +s +r +a +i "%%i"

Sírvete de la utilidad de FOR para algo más util, cómo esto:
Código:
Set "DriveLetters=C D E F G H I J K L M N O"

For %%# in (%DriveLetters%) Do (
For /R "%%#:\" %%i in ("*%%p") Do (...)
)

Nota: Aunque realmente lo que deberías hacer para aumentar la eficiencia es obtener e iterar una lista de unidades de disco duro conectadas al PC, con el comando FSUTIL o WMIC:
http://foro.elhacker.net/scripting/sobre_archivos_bat-t402932.0.html;msg1899628#msg1899628



Puede que haya otras cosas más a destacar en el código cómo por ejemplo la funcionalidad principal del código... no es la más correcta, pero sinceramente no me apetece analizar más de lo necesario un código escrito en Batch y menos de una "vacuna", batch no sirve para eso y creo que con lo dicho es suficiente para que puedas mejorar algunos aspectos fundamentales tanto en el uso de batch-script como en la programación general.

Mi último consejo es que lleves a cabo tus proyectos de programación en cualquier otro lenguaje compilado o de scripting que esté capacitado para la tarea, menos Batch.

Espero que el pequeño análisis haya servido de algo.

Saludos!
5622  Programación / Scripting / Re: Problemas con django en: 21 Abril 2015, 19:56 pm
Utiliza la siguiente sintaxis:

Código:
Python.exe "C:\ruta de Python\Scripts\django-admin.py" startproject "nombre del proyecto"

Fuente

Saludos
5623  Programación / Scripting / MOVIDO: ¿Comando para ejecutar una aplicación como administrador? en: 21 Abril 2015, 19:52 pm
El tema ha sido movido a Windows.

http://foro.elhacker.net/index.php?topic=433782.0
5624  Programación / Programación General / MOVIDO: Duda con la sintaxis en C (usando code::blocks) -- solucionado, gracias; en: 21 Abril 2015, 19:49 pm
El tema ha sido movido a Programación C/C++.

NO DUPLICAR TEMAS, LEER LAS NORMAS DLE FORO, GRACIAS.

http://foro.elhacker.net/index.php?topic=433811.0
5625  Programación / Programación General / MOVIDO: Problema con variable de datos en un programa en C -- solucionado gracias; en: 21 Abril 2015, 19:48 pm
El tema ha sido movido a Programación C/C++.

http://foro.elhacker.net/index.php?topic=433788.0
5626  Programación / .NET (C#, VB.NET, ASP) / Re: Problema mostrar multiples variables en un solo Listbox en: 21 Abril 2015, 16:59 pm
repiten los resultados

01 02 03 04 05 06 07 08 09 10
01 02 03 04 05 06 07 08 09 10
01 02 03 04 05 06 07 08 09 10
01 02 03 04 05 06 07 08 09 10
01 02 03 04 05 06 07 08 09 10
01 02 03 04 05 06 07 08 09 10

Claro que se repiten, intenta entender el código que estás manipulando.

En el bloque del FOR, por cada valor que se encuentre en Lnumbers haces esto ListBox1.Items.Add(String.Join(" "c, Lnumbers.Cast(Of Integer))), estás agregando la misma colección "X" cantidad de veces donde "X" equivale a la cantidad de valores de Lnumbers.

No entiendo lo que quieres hacer.

Saludos
5627  Foros Generales / Dudas Generales / Re: Cómo saben los requisitos de los programas? en: 19 Abril 2015, 07:53 am
Citar
Cómo saben los requisitos de los programas?

Los requisitos de consumo de RAM se pueden obtener realizando diversos tests (del mínimo y los picos de consumo) con aplicaciones dedicadas a analizar las operaciones de memoria de "X" aplicación, a este tipo de técnica se le denomina Profilling, existe el profilling de memoria, y el profilling de rendimiento (que nada tiene que ver). A este tipo de herramientas se les da utilidad para depurar aplicaciones en busca de conflictos de consumo excesivo de RAM (o lento rendimiento de la aplicación).

Por nombrar algunas herramientas, para la plataforma .Net puedes recurrir a Telerik JustTrace, y ANTS Memory Profiler + ANTS Performance Profiler entre otros, por orden de preferencia personal.

Para un análisis genérico puedes recurrir a la herramienta VMMap, no conozco más ya que no desarrollo aplicaciones en otros lenguajes.

PD: Eso de probar la app en varios PCs para sacar estadísticas es una auténtica bobada, eso lo hacen las grandes empresas (a lo Microsoft) en busca de bugs, beta-testers, y quizás aprovechen para registrar estadísticas de consumo RAM y rendimiento sí, pero el programador "normal", el autónomo cómo tu y cómo yo, prueba la app en una máquina virtual y allí se realizan los diversos análisis, ya que puedes condicionar el entorno de la VM para "quitarle" o "darle" requisitos cómo por ejemplo concederle más memoria virtual o instalar unas runtimes específicas para testear la app, y además puedes utilizar varios sistemas operativos (varias VM) para elaborar informes de resultados con más seguridad.

Saludos
5628  Programación / .NET (C#, VB.NET, ASP) / Re: Como puedo mostar 60 listbox en uno solo :) en: 18 Abril 2015, 20:18 pm
Supuse que los items de esos listboxes ya eran series de números horizontales cómo en el ejemplo que pusiste, ya veo que no, pero me decepciona que a estas alturas necesites ayuda para hacer estas cosas, lo has visto hacer cientos de veces ya, jeje:

Código
  1. Dim lbs As ListBox() = {ListBox2, ListBox3, ... ListBox60}
  2.  
  3. For Each lb As ListBox In lbs
  4.    ListBox1.Items.Add(String.Join(" "c, lb.Items.Cast(Of String)))
  5. Next lb

Saludos!
5629  Programación / .NET (C#, VB.NET, ASP) / Re: Como puedo mostar 60 listbox en uno solo :) en: 18 Abril 2015, 14:27 pm
Lo que he entendido es que tienes 60 listboxes y quieres añadir los items de esos 60 listboxes en otro listbox, pues:

Código
  1. Dim lbs As ListBox() = {ListBox2, ListBox3, ... ListBox60}
  2.  
  3. For Each lb As ListBox In lbs
  4.    ListBox1.Items.AddRange(lb.Items)
  5. Next lb

saludos
5630  Programación / Scripting / Re: como eliminar los pif o exe (Virus) Code para Mejorar "Solo Experto en Batch" en: 18 Abril 2015, 08:54 am
Batch no es un lenguaje compilado así que para "convertir" a executable necesitas un packer, y para establecer o modificar el icono principal puedes utilizar cualquier editor de recursos cómo Resource Hacker (en caso de que el packer no tenga esta característica, claro está).

No es necesario ser experto en el lenguaje, basta con saber un poco de empaquetamiento de aplicaciones (application packaging) y administración de tablas de recursos, aunque si te quedas más tranquilo te puedo decir que tengo Batch muy exprimido desde hace una década o más.

Te recomiendo utilizar la aplicación ExeScript Editor
http://www.scriptcode.com/download/

Si te lanza algún fallo, especifica el mensaje de error y la información adicional (si alguna), recuerda que no somos magos.

Saludos!
Páginas: 1 ... 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 [563] 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 ... 1254
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines