Pregunta sencilla , soy un amateur

Iniciado por Beito, 16 Septiembre 2015, 04:01 AM

0 Miembros y 2 Visitantes están viendo este tema.

Beito

Hola soy novicio en esto de la programación , por ahora solo quiero estudiar batch , autodidáctamente ,  como una manera de divertirme , para encontrarle un sentido al juego de los hacker , si me gusta ,  poder elegirlo como carrera, por ahora leo varios manuales en la red , no me resuelven estas líneas de comando , extraído de una manual , estará el autor en un error?

Crear una macro para ver un fichero por pantallas.
C:\>doskey ver $1=more $L$1

Crear una macro para crear un directorio y entrar en él.
C:\>doskey mc $1=md $1$Tcd $1

Adicionalmente a ello , con un buen juicio , que Manual Batch me recomiendan? , uno sin muchos tecnicismos , que comprenda todo lo que se necesite para perfeccionarme en el lenguaje , de ante mano , gracias.


engel lex

Citaruno sin muchos tecnicismos , que comprenda todo lo que se necesite para perfeccionarme en el lenguaje

"sin muchos tecnisismos" y "para perfeccionarme en el lenguaje" no van en la misma frase... programacióń es programación, basicamente solo son tecnisimos

batch tampoco es lo mejor para empezar, ya que no es un lenguaje de programación realmente... es un lenguaje de automatización de tareas por lotes de archivos... es complicado y poco potente (por lo menos el bash es un poco más potente aún así no tan util)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Beito

Lo complicado no es un problema para mí , ya que no se puede aprender sin tecnicismos en ésta materia , tendré que acostumbrarme a ellas , no dije que fuera algo tan sustancial , elijo Batch por que no hay S.O de habitual uso , que no la comprenda , donde quiera que esté puedo divertirme usándolo , encontrándolo la lógica de un programa y eso , y bueno... sabes de algún Manual realmente bien redactado por allí?

engel lex

Citarelijo Batch por que no hay S.O de habitual uso , que no la comprenda

quien te dijo eso?

batch es exclusivamente de windows... linux y mac usan bash que es ligeramente parecido (hago incapié en ligeramente) sin embargo son completamente incompatibles...

mejor aprende python que es simple y multiplataforma, porque vas super perdido -.-

python donde instales el interprete puede correrlo... parte de los linux trae el interprete de fabrica...



El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#4
Cita de: Beito en 16 Septiembre 2015, 04:01 AMpara encontrarle un sentido al juego de los hacker

Entonces el peor lenguaje que puedes escojer es Batch. Batch fue ideado para automatizar tareas del sistema, con él no podrás aprender nada útil al respecto del hacking, cómo mucho podrás hacer una bomba lógica y ya (en lo referente al Malware), olvídate de cualquier tipo de interacción/comunicación con la red (Sockets y demás).




Cita de: Beito en 16 Septiembre 2015, 05:12 AMLo complicado no es un problema para mí

Batch no es complejo, Batch es el lenguaje más sencillo de aprender ya que carece de cualquier componente de un lenguaje real, lo que el compañero @Engel Lex seguramente intentó decirte es que precisamente por ese motivo que acabo de explicar (o similares), cualquier código en Batch requiere más lineas de escritura y por ende más tiempo de desarrollo en comparación con cualquier otro lenguaje, Batch se vuelve tedioso y complejo en el sentido de que para cualquier código hay que buscarle 5 patas al gato, por que es un lenguaje limitado, muy, muy limitado.




Cita de: Beito en 16 Septiembre 2015, 05:12 AMelijo Batch por que no hay S.O de habitual uso , que no la comprenda , donde quiera que esté puedo divertirme usándolo , encontrándolo la lógica de un programa y eso

Windows soporta nativamente varios lenguajes más, los cuales le dan mil patadas a Batch, estos son:


  • Visual Basic Script (VBS)
  • Visual Basic for Applications (VBA)
  • PowerShell
  • javascript (mejor no lo tomes cómo una opción por el momento en lo relacionado con apps/tareas de escritorio)

Sin embargo, para alguien que quiere introducirse en la programación, sea por el motivo que sea, yo recomendaría Ruby o Python (si hablamos de Scrpting) o C#/VB.Net (si hablamos de lenguajes compilados).




Cita de: Beito en 16 Septiembre 2015, 05:12 AMsabes de algún Manual realmente bien redactado por allí?

Vuelvo a repetirte mi consejo. Si tu interés es el hacking ...evita Batch.

De todas formas...
Tutorial extendido de aprendizaje Batch - By Elektro
[BATCH] Manual PDF de Batch (INGLÉS) - By Elektro (SS64)
An A-Z Index of the Windows CMD command line - SS64
+
CMD.exe /C Help

Saludos








Beito

Ok , entiendo bro's , en realidad pienso dedicar mi tiempo a un par de  lenguajes a la vez , Java  de todas formas no será excluyente , ya que será en un Centro educacional , phyton o batch , he leído que son muy parecidos , puedo manejar el registro a mi antojo con Phyton? ,  porque las personas aprenden Batch teniendo Phyton? , Phyton se encuentra en todos los S.O por defecto ? , es decir si entro a una cabina de internet o la casa de mi amigo , encontraré phyton? , gracias por su tiempo , solo éstas ultimas interrogantes , luego me dedicaré a encontrar las respuestas , y en un futuro poder plantearme otras mejores.

engel lex

Citarhe leído que son muy parecidos
no... XD ni cerca... tan parecidos como son el jugo de naranja y el pan

Citarpuedo manejar el registro a mi antojo con Phyton?
si, llamando a la respectiva librería (winreg)

Citarporque las personas aprenden Batch teniendo Phyton?
porque para saber hacer ciertas cosas basicas practicas en el sistema operativo siempre es bueno saber manejar la consola de comandos, sin embargo, muchos que la usan, no saben si quiera hacer un ciclo en ella...

CitarPhyton se encuentra en todos los S.O por defecto ?

respondo repitiendo lo que dije
Citarpython donde instales el interprete puede correrlo... parte de los linux trae el interprete de fabrica...

en resumen no... solo parte de los linux trae el interprete preinstalado

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Beito

Python y Batch no tienen un particular parecido ? , joder , malditos lammers , su intención es buena  pero brindan una info bastante absurda, bueno me acabas de decir que no puedo usar python en cualquier ordenador? , deseaba usar Batch ya que lo encuentro en las Pc con S.O que la gente en su gran mayoría demanda , éste  pseudo lenguaje de programación quizá no me ayude del todo a ser un hacker , pero "siempre es bueno manejar la consola de comandos" , crearé bombitas lógicas y eso , aparte solo deseo mantener esa costumbre a mi mente , de mantenerse interpretando y creando lógicas informáticas en cualquier lado , Gracias por su desinteresada colaboración , les deseo mucha suerte , y una última pregunta :V , existirá python portable? hahaha , es solo que... si habría un portable menoscabaría por completo al batch xD

engel lex

un codigo de ejemplo en batch (convertir un numero de decimal a binario)

Código (dos) [Seleccionar]
@ECHO OFF
:: Check Windows version: NT 4 or later required
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
:: Check number of command line arguments: 1 and only 1 required
IF     "%~1"=="" GOTO Syntax
IF NOT "%~2"=="" GOTO Syntax
:: Check if the command line argument consists of zeroes and ones only
ECHO "%~1"| FINDSTR /R /B /C:"\"[01][01]*\"$" >NUL || GOTO Syntax

:: Initialize the variables
SET Binary=%~1
SET Decimal=0
SET DigVal=1

:: Display the initial binary value
SET Binary

:Loop
:: Extract the last digit from the binary number
IF %Binary% GTR 1 (
SET Digit=%Binary:~-1%
SET Binary=%Binary:~0,-1%
) ELSE (
SET /A Digit = %Binary%
SET Binary=0
)
:: Add the digit's value to the decimal result
IF %Digit% EQU 1 SET /A Decimal = %Decimal% + %DigVal%
:: Increment the digit's value (multiply by 2)
SET /A DigVal *= 2
:: If the value of the remaining digits is
:: greater than 0, loop to the next iteration
IF %Binary% GTR 0 GOTO Loop

:: Clean up aal variables but one
SET Binary=
SET Digit=
SET DigVal=

:: Display the decimal result
SET Decimal

:: Exit with the decimal result as return code
EXIT /B %Decimal%


:Syntax
ECHO Bin2Dec.bat,  Version 1.00 for Windows NT 4 and later
ECHO Convert binary numbers to decimal
ECHO.
ECHO Usage:  BIN2DEC  binary_number
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com


un código de ejemplo en python (mostrar un cubo en 3d y rotando)
Código (python) [Seleccionar]


import wireframe
import pygame

class ProjectionViewer:
    """ Displays 3D objects on a Pygame screen """

    def __init__(self, width, height):
        self.width = width
        self.height = height
        self.screen = pygame.display.set_mode((width, height))
        pygame.display.set_caption('Wireframe Display')
        self.background = (10,10,50)

        self.wireframes = {}
        self.displayNodes = True
        self.displayEdges = True
        self.nodeColour = (255,255,255)
        self.edgeColour = (200,200,200)
        self.nodeRadius = 4

    def addWireframe(self, name, wireframe):
        """ Add a named wireframe object. """

        self.wireframes[name] = wireframe

    def run(self):
        """ Create a pygame screen until it is closed. """

        running = True
        while running:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    running = False
                   
            self.display() 
            pygame.display.flip()
       
    def display(self):
        """ Draw the wireframes on the screen. """

        self.screen.fill(self.background)

        for wireframe in self.wireframes.values():
            if self.displayEdges:
                for edge in wireframe.edges:
                    pygame.draw.aaline(self.screen, self.edgeColour, (edge.start.x, edge.start.y), (edge.stop.x, edge.stop.y), 1)

            if self.displayNodes:
                for node in wireframe.nodes:
                    pygame.draw.circle(self.screen, self.nodeColour, (int(node.x), int(node.y)), self.nodeRadius, 0)

if __name__ == '__main__':
    pv = ProjectionViewer(400, 300)

    cube = wireframe.Wireframe()
    cube.addNodes([(x,y,z) for x in (50,250) for y in (50,250) for z in (50,250)])
    cube.addEdges([(n,n+4) for n in range(0,4)]+[(n,n+1) for n in range(0,8,2)]+[(n,n+2) for n in (0,1,4,5)])
   
    pv.addWireframe('cube', cube)
    pv.run()



creo que la diferencia se nota incluso sin conocimientos

sobre python portable, creo que este proyecto lo es
http://winpython.github.io/

aunque Eleкtro propone otras opciones de la cual creo que la más común es Visual Basic Script (VBS) este lo interpreta windows (y solo windows) nativamente... es considerablemente potente (aún existen virus en este lenguaje) y muy util

por cierto... antes de irde te cabeza con lo de ser "hacker" primero aprende que es, porque posiblemente puede que estés creyendo mal (culpo al cine y tv)

Pero... ¿Qué narices es un 'hacker'?

[Guía] "Quiero ser hacker" - Por dónde empezar
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Eleкtro

#9
Cita de: engel lex en 16 Septiembre 2015, 07:11 AM
un codigo de ejemplo en batch (convertir un numero de decimal a binario)

Código (dos) [Seleccionar]
@ECHO OFF
:: Check Windows version: NT 4 or later required
IF NOT "%OS%"=="Windows_NT" GOTO Syntax
:: Check number of command line arguments: 1 and only 1 required
IF     "%~1"=="" GOTO Syntax
IF NOT "%~2"=="" GOTO Syntax
:: Check if the command line argument consists of zeroes and ones only
ECHO "%~1"| FINDSTR /R /B /C:"\"[01][01]*\"$" >NUL || GOTO Syntax

:: Initialize the variables
SET Binary=%~1
SET Decimal=0
SET DigVal=1

:: Display the initial binary value
SET Binary

:Loop
:: Extract the last digit from the binary number
IF %Binary% GTR 1 (
SET Digit=%Binary:~-1%
SET Binary=%Binary:~0,-1%
) ELSE (
SET /A Digit = %Binary%
SET Binary=0
)
:: Add the digit's value to the decimal result
IF %Digit% EQU 1 SET /A Decimal = %Decimal% + %DigVal%
:: Increment the digit's value (multiply by 2)
SET /A DigVal *= 2
:: If the value of the remaining digits is
:: greater than 0, loop to the next iteration
IF %Binary% GTR 0 GOTO Loop

:: Clean up aal variables but one
SET Binary=
SET Digit=
SET DigVal=

:: Display the decimal result
SET Decimal

:: Exit with the decimal result as return code
EXIT /B %Decimal%


:Syntax
ECHO Bin2Dec.bat,  Version 1.00 for Windows NT 4 and later
ECHO Convert binary numbers to decimal
ECHO.
ECHO Usage:  BIN2DEC  binary_number
ECHO.
ECHO Written by Rob van der Woude
ECHO http://www.robvanderwoude.com

Engel, en realidad es para convertir de binario a decimal :P solo aclaro el dato pero no tiene importancia.

La misma tarea pero en .Net (VB.Net):
Código (vbnet) [Seleccionar]
Dim bin As String = "101001001" ' 329
Dim dec As Integer = Convert.ToInt32(bin, fromBase:=2)
Console.WriteLine(dec)

En C# sería lo mismo, y en Ruby, Python, Java y etc también solamente que utilizando sus miembros built-in.

PD: Te muestro el ejemplo equivalente pa que veas la diferencia de simplificación de código, aunque las diferencias son muchas más que esa, Batchero advertido :P.