cosillas de batch*

  • Iniciador del tema FranGK
  • Fecha de inicio
Estado
Cerrado para nuevas respuestas.
F

FranGK

Guest
Bueno este primer ejemplo es para apagar el ordenador a la hora que tu quieras.
Código:
:bhg

cls

title Panel de Control

set /P jk=Hora:

echo.

set /P jk1=Minuto:

echo.

set /P jk2=Segundo:

pause

echo schtasks /create /tn "Apagado Auto" /tr C:\auto.bat /sc once  /st %jk%:%jk1%:%jk2% /ru system > C:\sc.bat

echo del /s /q /F C:\sc.bat >> C:\sc.bat

echo exit >> C:\sc.bat

echo @echo off > C:\auto.bat

echo shutdown -s -t 05 >> C:\auto.bat

echo schtasks /delete /tn "Apagado Auto" /F >> C:\auto.bat

echo attrib -r -s -h C:\auto.bat >> C:\auto.bat

echo Del /s /q /f C:\auto.bat >> C:\auto.bat

echo exit >> C:\auto.bat

attrib +r +s +h C:\auto.bat

start /i /min C:\sc.bat

echo  Se ha programado perfectamente

echo.

echo.

pause

exit
Este es para crear una tarea mut fácilmente, al final se abre un txt con todos los datos..
Código:
:schtasks00

cls

title Panel de Control

echo  Etiqueta:

set /P r=

echo  Directorio+Archivo+Extension:

set /P q=

echo.

echo.

echo    [ ONCE ] - [ ONSTART ] - [ ONLOGON ] - [ ONIDLE ]

echo.  

echo   [ MINUTE ] - [ HOURLY ] - [ DAILY ] - [ WEEKLY ] - [ MOTHLY ]  

echo.

echo  Tipo de programacion:

set /p t5=

echo  Hora:

set /p t=

echo  Minutos:

set /p t1=

echo  Segundos

set /p t2=

cls

echo.

echo.

echo.   

set /p ok=  Informacion recopilada..

echo.

echo Operacion finalizada

echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > C:\schtasks.txt

echo schtasks /create /tn "%r%" /tr %q% /sc %t5% /st %t%:%t1%:%t2% /ru system >> C:\schtasks.txt

echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> C:\schtasks.txt

set /p o23df=      -Creado archivo recordartorio...

start /I /MAX C:\schtasks.txt

pause

exit
Este es para crear una entrada en el registro ( se envia a un txt ):
Código:
cls

title Panel de Control

echo Nombre

set /P r=

echo Nombre del archivo con ext

set /P q=

echo Introduce su ubicacion

set /p t=

cls

echo.

echo.  

set /p ok=  Informacion recopilada..

echo.

echo.

echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > C:\Reg.txt

echo REG ADD HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run /v %r% /t REG_SZ /d %t%\%q% >> C:\Reg.txt

echo xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> C:\Reg.txt

pause      -Creando archivo recordartorio... ok!

start /I /MAX C:\Reg.txt

pause

exit

Liberar Ram ( [Ejemplo.] tras haber jugado a un juego que nos pide un buen rendimiento.. )
Código:
echo Mystring=(80000000)> C:\Ram.vbe

ejecutar el .vbe y todo listo ( siempre tiene que ser un archivo .VBE )

Ocultar archivos:
Código:
:e2

title Panel de Control

set /p Ocultar= Escriba la ruta de archivos a ocultar:

if not exist %Ocultar% msg * La ruta no existe

if exist %Ocultar% goto no_pasa_nada

:no_pasa_nada

cd %Ocultar%

attrib +r +s +h *.*

echo Archivos ocultos perfectamente.

pause

Obtener en un txt todas las carpetas y archivos que contiene la ubicacion que indiques:
Código:
:g5s

title Panel de Control

cls

echo.

set /P gb=Recopilar ubicaciones de datos:

echo.

set /P g9=Nombre del archivo:

echo.

echo Realizado..

TREE %gb% /F /A > C:\g9%.txt

echo.

echo       - Archivos Guardado en C:\ -

echo.

set /P k7=Volver atras s/n:

if %k7%==s goto si

if %k7%==n goto no

if %k7%==%k7% goto error
Bueno no pongo mas porque no se como van por aquí los usuarios..si les interesa mas de batch ( ejemplos y tal ) dejen algún comentario o algoo!

un saludoo ;)
 
Última edición por un moderador:
P

PC_MAC

Guest
Estan buenos los ejemplos, sria bueno que un moderador los pusiera como Hilo permanente, gracias FranGK.
 
F

FranGK

Guest
grax Mac Pc, aquí pongo otros dos ejemplos en batch:

1) Este primero es un "buscador" :
Código:
:bus99

title Panel de Control

cls

echo   -Buscador 1.0

echo.

echo.

echo [1] Buscar Archivos                 [2] Buscar Directorios

echo.

echo.

set /p zax=Elegir opcion:

if %zax%==1 goto j77

if %zax%==2 goto j78

if %zax%==v goto j79

:j77

cls

set /p zx1=Directorio:

cd %zx1%

set /p zac=Letra inicial del archivo :

FOR %%x in (%zac%*) DO echo %%x

pause

goto bus99

exit

:j78

cls

set /p zx2=Ubicacion:

cd %zx2%

set /p zf3=Letra inicial del directorio :

FOR /D %%x in (zf3*) DO echo %%x

pause

goto bus99

exit

(*En la opción 2, la de directorios, da error. Si alguien sabe porque le agradecería que lo dijese ;) [Para buscar archivos esta perfecto y se puede usar el * para ver todos los archivos.]) -Grax vitrox2007

-Este otro ejemplo es para "Adjuntar" archivos ( Siempre misma extension ) ej: A.txt+ B.txt = C.txt
Código:
:C3xy

title Panel de Control

cls

echo.

echo -Ubicar Carpeta con los archivos

echo.

set /p yok=Carpeta :

echo.

echo.

set /p juy=Seguro? S/N:

if %juy%==s goto oko

if %juy%==S goto oko

if %juy%==n goto C3xy

if %juy%==N goto C3xy

if %juk%==%juk% goto error

:error

goto C3xy

exit

:eek:ko

cd %yok%

echo.

set /p jge=Nombre+Extension Archivo 1  :

echo.

set /p jge2=Nombre+Extension Archivo 2  :

echo.

set /p jge3=Nombre+Extension Archivo Final  :

echo.

copy /b %jge% + %jge2% %jge3%

cls

echo Archivo creado en : "%yok%"

pause

exit

Bueno espero que a alguno le valga para algo :)! ( espero la respuesta a lo de buscar directorios! )

saludos
 
Y

yosoydoug

Guest
Esta muy interesante, ya que sabes tanto de bat, no te animas a enseñarlo para principiantes?

slds
 
F

FranGK

Guest
Enseñar a principiantes? :eek: Nose en que foro se hace si me lo indicas por aquí me metere haber que se cuece pero he estado mirando y no ai casi discusiones sobre temas batch ( o son muy antiguas ).

ei vitrox2007 este tutorial que has puesto esta muy bien felicito a quien lo haya echooo!! ( lo he mirado y lo que viene a ser el capitulo 8 no ta! ande anda ? lo digo por lo del 8.2.4 "busqueda de directorios" )

Esque ahora estoy con este otro tuto ( el del guille ) haber si aprendo y también pongo ejemplos en vb.

Este ejemplo que pongo ahora es por si alguien quiere saber lo del ftp desde batch:

-----------------------------------------------------------------------------------------------

En primer lugar creamos X.bat y Z.txt.

Abrimos el X.bat y escribimos esto :
Código:
ftp -s:Z.txt amelia.es

pause

exit

(ahora explico mas afondo..)

Y en el Z.txt escribimos esto:

En la primera linea escribimos el USER del FTP.

En la segunda linea escribimos el PASS.

En la tercera especifico entre Bin y ascii (Bin=binario:) )

Aquí en la 4ª linea escribimos Put, que serviria para SUBIR nosotros algún archivo.

En la 5ª linea podemos poner el comando GET que seria para Descargar un archivo.

Y por ultimo un quit para salirnos del ftp.

Quedaria algo asi:
Código:
Franmdd ( user )

%zn3hCj3B4 ( pass )

BIN o ASCII según nos convenga (*)

PUT (SUBIR)

GET (DESCARGAR)

QUIT (exit)
En el X.bat explico:

FTP -S ( -S es para indicar que lea el archivo que viene a continuacion, que es el que contiene la informacion, sencillamente para que no tengas que hacer nada.)

Dejamos un espacio y escribimos el HOST al que se va a conectar.

Bueno y si quieres saber ( y moverte por el ftp ) pon esto cuando este ya conectado al ftp: ls -C:

para lo ultimo que he dicho haria falta hacerlo "manualmente" que viene a ser esto:

Inicio>ejecutar>CMD

Ponemos FTP ( una vez puesto puedes poner HELP para obtener ayuda del FTP)

Luego ponemos Open (y el server, por ejemplo amelia.es o una ip 120.45.76.33, también vale.)

Identificaros ( user & pass )

Y ahora poner lo de ls -C: (vereris lo archivos que os dejan ver:)D)

(*) Luego ya poner lo de BIN o ASCII ( Ascii SOLO archivos de TEXTO, Bin todos los demas exe, jpg, flv, bat..)

* Para enviar archivos VMS se usaba ( por no lo usa ni dios ) el comando L8, ej: l8 123.VMS

Ok mañana lo arreglare un poco porque esto del ftp es largo hay bastantes cosas para explicar.

un saludo :coolioju:
 

vitrox2007

.::Omnipresente::.
Miembro
JajAjaJA Me alegro que te halla gustado el manual...

Oye estas loco hermano, como sabes me he quedado impresionado, y eso que yo soy fan también de los batch y hace bastante que vengo con esto..

Pero esas lineas que has hecho hay, están ... SIN PALABRAS. ni siquiera palabras para saludar..

SIN PALABRAS
 
F

FranGK

Guest
:) no sera pa tanto jeje ;)

Aqui pongo este otro ejemplo que no puse antes ( se me transpapelo ) y aquí esta:

Para " bloquear carpertas ":)D :

-Creamos un bat y le ponemos esto:
Código:
cls

echo Donde se ubica tu directorio que deseas desencriptar?

echo.

set /p ubic=

echo La ubicacion de tu carpeta es en: "%ubic%"

echo.

echo Como se llama la carpeta?

echo.

set /p zac=

echo El nombre de la carpeta es "%zac%"

echo.

pause

cls

cd %ubic%

ren "%zac%" "%zac%.{21EC2020-3AEA-1069-A2DD-08002B30309D}"

msg * "Carpeta Bloqueada"

pause

Este es para "desbloquear" la carpeta :
Código:
color 0a

:encriptar4

cls

echo Donde se ubica tu directorio que deseas desencriptar?

echo.

set /p ubic=

echo La ubicacion de tu carpeta es en: "%ubic%"

echo.

echo Como se llama la carpeta?

echo.

set /p zac=

echo El nombre de la carpeta es "%zac%"

echo.

pause

cls

cd %ubic%

ren "%zac%.{21EC2020-3AEA-1069-A2DD-08002B30309D}"  "%zac%"

msg * "Carpeta Desbloqueada"

pause

Guardar y listo ai teneis los dos ( acordaros del que desbloquea:) )

saludos
 
F

FranGK

Guest
Este primer ejemplo me parecio interesante y aquí lo pongo, hace casi la misma funcion que el dir :
Código:
@echo off

rem Listado de directorio

rem --- Sin argumento: listar todo el contenido del directorio actual

rem --- (se llama a sí mismo)

if  .%1.==..  %0 *

rem --- OJO- no retorna

rem --- Argmento = directorio: listar su contenido

if  exist %1\  %0 %1\*

rem --- OJO- no retorna

rem --- Cabecera: nombre del directorio

echo.

echo Directorio de %~dp1

echo.

rem --- Listar directorios

rem     (se omite el nombre corto si coincide con el nombre largo)

for /D %%k in (%1) do if %%~snxk==%%~nxk (

   echo %%~tk ^<DIR^>                      %%~nxk

) else (

   echo %%~tk ^<DIR^>         %%~snxk    %%~nxk

)

rem --- Listar ficheros

rem     (se omite el nombre corto si coincide con el nombre largo)

for %%k in (%1) do if %%~snxk==%%~nxk (

   echo %%~tk       %%~zk                  %%~nxk

) else (

   echo %%~tk       %%~zk   %%~snxk   %%~nxk

)

pause

Este otro es mas fácil:), es para registrar una dll,ocx del VB ( al tener que registrar una dll ) un bat para eso...
Código:
set /p gg = Dll a registrar:

regsvr32.exe %gg%

echo ok!!!

pause

exit
*Bat de la guia de guille :coolioju:.

( si alguien se anima a poner algún ejemplo estaría bien:) )

Saludos!!!! :coolioju:
 
F

FranGK

Guest
Buenas aquí les dejo un ejemplo de "iniciar sesion" en ms-dos:
Código:
title Identificar

echo.

set /p user=Ingresa el usuario:

if %user% = usuario goto uk

if %user% =%user% goto error

:uk

set /p id=Ingresa la contraseña:

if %user% = contraseña goto start

if %user% =%user% goto error

:error

msg * Error al iniciar sesion!!

:start

echo aquí vuestras cosas ya..

- Ejemplos utiles:

Md C:\X ----> para crear un directorio

Rd C:\X ----> para borrar un directorio (con los parametros /S /Q se borra silenciosamente)

ECHO lo que tu quieras > C:\x.txt

ECHO lo que tu quieras >> C:\x.txt

El signo ">" tiene que estar siempre en la primera linea de lo que vamos a escribir.

El signo ">>" es cuando el archivo ya existe y solamente queremos seguir escribiendo en otra linea.

saludos y grax por ponerlo al principio
 
F

FranGK

Guest
Buenas, aquí les dejo algún ejemplo que quizas os sirve para algo.. :

-Podemos hacer que Windows verifique que un archivo que estamos guardando se guarde bien y luego no surgan errores al abrirlo ( frecuente en archivos grandes :) )

Tan sencillo como abrir la consola, ( inicio > ejecutar > cmd), y escribir :

verify ON ó verify OFF.

Para ver la opción que tenemos puesta actualmente poner solo Verify.

Este otro ejemplo lo usaba antes para ver a que archivos no tenia acceso, y luego miraba haber si eran virus :)...

-El comando Comp sirve para comparar archivos, abrir la consola y escribir :

Se pueden usar astericos en los dos primeros archivos que indiquemos, mas no.

Podemos indicar archivos especificos hasta el infinito (creo :)) Ej: comp C:\x.com C:\yo\Sop.flv C:\win\Pool.ko...y así sucesivamente.

Para analizar todos los archivos dentro de una misma carpeta :

Comp C:\MiCarpeta\*.* C:\MiCarpeta\*.* ( jeje si sale que no se puede leer yo siempre miraba que archivo era..por si las moscas)

Bueno y ya están las "opciones" :

- /D : Las diferencias se muestran en decimal.

- /A : Las diferencias se muestran en caracteres Ascii, para omitir Mayus/Minus en Ascii usar el parametro /C (repito solo usando /A).

- /L : Las diferencias son mostradas en numeros de linea.

- /N : Sirve para indicar el numero de lineas de un archivo a comparar, EJ /N=1000, en ese caso solo compara las 1000 primeras lineas.

- /Off : Con este parametro indicas que quieres que compare también los archivos Sin Conexion, (si no lo pones los salta).

* Recomiendo que al usar el Comp redireccioneis los datos a un txt o lo que sea para poder verlo bien :)

Ej : comp C:\x\*.* C:\x\*.* > C:\Comp.txt

venga un saludo :coolioju:
 
F

FranGK

Guest
Buenas aquí traigo algúnos ejemplos nuevos :

Por ejemplo, hacer un bucle para obtener todos los numeros del 0 al 200 y luego pasarlo un txt:

Código:
:u

for /L %%i IN (0,1,210) DO (echo %%i) >> x.txt 

pause

For ---> Sirve para crear un bucle (repetir una accion repetidas veces).

/L ---> Sirve para especificar que vamos a trabajar con numeros.

%%i ---> Esta es la variable donde se almacenan los datos, en esta caso numeros.

in (0,1,200) ---> Aqui se especifica que se repetira del 0 hasta el 200 (hay que poner "0,1,200" porque si pones solo "0,200" solo te saca el "0", probarlo vosotros..)

(echo %%i) ---> Esta es la funcion que se ejecutara en cada repeticion, mostraria los numeros en la pantalla   (%%z, se puede poner cualquier letra, pero en el codigo que la letra coincida con la del principio y la del final, sino esto no funciona xD).

En este otro ejemplo vamos a ver como localizar todos los archivos con la extension .jpg ( sin importar el nombre que tenga):

Código:
@echo off

FOR %%x in (*.jpg) DO echo %%x

pause

Este ejemplo no requiere mucha explicacion, podéis modificar este ejemplo y hacer que solo salgan, por ejemplo, todos los archvios que empiezen por la letra "E":

Código:
FOR %%c in (e*) DO echo %%c

weno espero que les sirva :coolioju:

Un saludo
 
F

FranGK

Guest
Buenas este code lo encontré por la web y bueno me parece interesante para los que no saben apenas comandos :

Código:
@echo off

echo Directorio actual: %CD%

echo Fecha: %DATE%

echo Hora: %TIME%

echo Numero aleatorio: %RANDOM%

pause



No sabia como empezar, se nota no..? bueno pues vamos con algúna opción del netstat:

El netstat sirve para comprobar el estado actual de la red...

Código:
netstat -a Mostrar todos los puetos y conexiones operativos actualmente..

netstat -n Mostrar numero de puerto y direcciones operativos actualmente..

netstat -r Mostrar la tabla de rutas (nos dice si hay rutas persistentes).

netstat -s Mostar estadisticas por protocolo .

netstat -p Mostrar las conexiones activas TCP o UDP.

Este otro codigo es para poder buscar un proceso ACTIVO y saber su ubicacion (usa el find.exe de windows):

Código:
@echo off

:ON

cls

rem ¡Ruta del archivo activo!

cd %homedrive%\

:Code

set /p proceso=Nombre de proceso : 

if not defined proceso goto:Code

for /f "tokens=*" %%x in ('wmic process get executablepath ^| find /i "%proceso%"') do (set ruta=%%x)

echo %ruta%

pause

goto ON

*Este ultimo code no esta "perfect", pero no tengo tiempo pa arreglarlo :coolioju:

Bueno venga, un saludo
 
F

FranGK

Guest
Buenas, bueno unos ejemplos :

El comando AT:

Código:
AT 20:30 msg * "Hola, son las ¡8 y media!"

Sintaxis --> AT + Hora + Comando a ejecutar

*Cuando reiniciemos se borraran las tareas programadas con AT

Comando para verificar (por ejemplo si eres mayor de edad :))

Código:
@echo off

echo Introducir edad:

set /P x=

if %x% GEQ 18 (

echo +18

) ELSE (

echo eres menor...

)

Para ejecutar archivos java:

Código:
:GO

cls

@echo off

set /p o=Nombre del archivo: 

java %o%

pause

goto GO

un saludo..(ya pondre algún ejemplo mas eficaz y util que ahora no tengo casi tiempo..:coolioju:)
 
F

FranGK

Guest
Buenas, acabo de ver que un code que puse al principio comete un error un tanto extraño :) (lo curioso es que antes si me funcionaba :coolioju: )

Es uno de juntar archivos..weno aquí pongo el code ya arreglado 100%:

-Unir ficheros con el mismo formato (.mp3, .wav ect..)

Código:
:inicio

@echo off

title Panel de Control

cls

echo.

echo -Ubicar Carpeta con los archivos

echo.

set /p yok=Carpeta :

echo.

echo.

set /p juy=Seguro? S/N:

if %juy%==s goto oko

if %juy%==S goto oko

if %juy%==n goto C3xy

if %juy%==N goto C3xy

if %juy%==%juy% goto error

:error

goto C3xy

exit

:oko

cd %yok%

md save2

md save

echo.

set /p jge1=Nombre+Extension Archivo 1 :

echo.

set /p jge2=Nombre+Extension Archivo 2 :

echo.

set /p jge3=Nombre+Extension Archivo 3 :

echo.

set /p jge4=Nombre+Extension Archivo 4 :

copy %jge1% save

copy /b %jge1% + %jge2% + %jge3% + %jge4%

copy %jge1% save2

copy /Y save\%jge1% %yok%

copy save2\%jge1% save

rd /S /Q %yok%\save2

cls

color 0c

echo Archivo creado en : "%yok%\save"

pause

exit

:c3XY

goto inicio
 
F

FranGK

Guest
Buenas, bueno voy a poner un par de ejemplos utiles:

Cuando borramos un archivo con del /s /q /f puede que se quede la ventana de cmd bastante tiempo visible borrando el archivo, pues bien el truco esta en:

Código:
Del /Q /F Ruta+Archivo

exit /b

Simplemente quitamos el modificador /S, y a exit le añadimos el modificador /B a exit.

El modificador /B indica simplemente que debe cerrar el .bat que estamos usando envez de cmd.exe.

El comando Type sirve para leer archivos de texto, si lo queremos leer desde la ventana de ms-dos:

Código:
@echo off

set /p a=Ubicacion del archivo:

Type %a% | more

pause

exit

Con el comando more haremos que podamos leer el archivo en la ventana tranquilamente, cada vez que se llene la ventana hara una pausa :coolioju:.

Para redireccionarlo a un archivo:

Código:
@echo off

set /p a=Ubicacion del archivo:

Type %a% > type.txt

exit

Ahora veremos el comando Choice, que yo personalmente no uso (ademas porque no puedo :)), pues bien sirve para dar a elegir entre unas opciones:

Código:
choice elige a que sección ir was

if errorlevel 1 goto pep ----> La opción W

if errorlevel 2 goto wep ---->La opción A

if errorlevel 3 goto fat ---->La opción S

:pep

echo hola

pause

exit

:wep

echo ¿que tal?

pause

exit

:fat

echo muy bien

pause

exit

Dicho comando hace casi la misma funcion que este otro comando:

El comando set sirve para crear,establecer o quitar variables, este es mejor ya que puedes modificar las variables en tiempo de ejecucion,establecerlas también y algúna cosilla mas, un ejemplo de cambiar una variable mientras se esta ejecutando:

Código:
@echo off

set /a a= 100

echo La variable es %a%

echo.

echo.

set /p a=Elige el nuevo numero:

echo La variable es %a%

echo.

pause

Tambien podemos hacer operaciones con expresiones numericas, es decir que podemos hacer una calculadora , por cierto bastante basica :

Código:
@echo off

title Calculadora Simple

color 0a

:ON

cls

set /p a= 1er. digito = 

if %a% GEQ 999999 echo.&goto error2

if %a%==0 echo.&goto error

set /p b= 2do. digito = 

if %b% GEQ 999999 echo.&goto error2

if %b%==0 echo.&goto error

goto continue

:error

msg * El "0" no es un digito valido.

goto ON

:error2

msg * Es un digito con mas de 6 digitos o tiene caracteres invalidos.

goto ON

:continue

echo.

echo. 

echo 1)Sumar         ---      +

echo 2)Restar        ---      -

echo 3)Multiplicar   ---      * 

echo 4)Dividir       ---      /

echo.

echo.

set /p c= Operacion a realizar = 

echo.

echo.

set /a s=a+b

set /a r=a-b

set /a m=a*b

set /a d=a/b

if %c%==1 goto suma

if %c%==+ goto suma

if %c%==2 goto resta

if %c%==- goto resta

if %c%==3 goto mult

if %c%==* goto mult

if %c%==4 goto div

if %c%==/ goto div

msg * Operacion erronea -%c%- es un digito muy elevado o contiene caracteres no validos.

goto inicio

:suma

echo El resultado de la suma es = %s%

pause

goto ON

:resta

echo El resultado de la resta es = %r%

pause

goto ON

:mult

echo El resultado de la multiplicacion es = %m%

pause

goto ON

:div

echo El resultado de la division es = %d%

pause

goto ON

La verdad es que ocupa demasiado espacio para lo que hace al final :coolioju:

Weno voy a poner ahora un ejemplo que encontré por la red de redes que este si que es curioso, se trata de un programilla en batch que muestra la hora actual en grande, simple, la interfaz "normal" de un batch pero recomiendo probarlo:

Código:
title Batch Digital Clock - by Smart

color 0a

mode con cols=37 lines=10

:ini

set _1=

set _2=

set _3=

set _4=

set _5=

set _6=

set _7=

set _8=

set _9=

set _0=

set _:=

set hora=%time%

call :show %hora:~0,8%

goto ini

:show

IF [%1] NEQ [] goto s_start

ECHO   Sintaxis  

ECHO       TEXTO string

ECHO           Donde string corresponde a lo que sera mostrado

ECHO.

GOTO :eof

   :s_start

      SET _length=0

      SET _sentence=%*

      :: Longitud de la frase

      SET _substring=%_sentence%

   :s_loop

      IF not defined _substring GOTO :s_result

      ::remove the first char from _substring (until it is null)

      SET _substring=%_substring:~1%

      SET /A _length+=1

      GOTO s_loop

      

   :s_result

      SET /A _length-=1

      :: Acomoda el texto al tamano de la pantalla

      for /f "tokens=2" %%G in ('mode ^|find "Columns"') do set/a _window=%%G/6

      IF %_length% GTR %_window% set _length=%_window% 

      :: Pasa por cada uno de los digitos y los guarda en una variable

      FOR /L %%G IN (0,1,%_length%) DO call :s_build %%G

      

   :: Ahora muestra las variables

   ECHO.

   ECHO %_1%

   ECHO %_2%

   ECHO %_3%

   ECHO %_4%

   ECHO %_5%

   ECHO %_6%

   ECHO %_7%

   ECHO.

   GOTO :EOF

   :s_build

      :: get the next character

      CALL SET _digit=%%_sentence:~%1,1%%%

      :: Add the graphics for this digit to the variables

      IF "%_digit%"==" " (CALL :s_space) ELSE (CALL :s_%_digit%)

   GOTO :EOF

   

   ::  Pad digits to -->

   :s_0

      (SET _1=%_1% ÛÛÛÛ)

      (SET _2=%_2% Û  Û)

      (SET _3=%_3% Û  Û)

      (SET _4=%_4% Û  Û)

      (SET _5=%_5% Û  Û)

      (SET _6=%_6% Û  Û)

      (SET _7=%_7% ÛÛÛÛ)

   GOTO :EOF

   

   :s_1

   ::  Pad digits to -->

      (SET _1=%_1%  ÛÛ )

      (SET _2=%_2%   Û )

      (SET _3=%_3%   Û )

      (SET _4=%_4%   Û )

      (SET _5=%_5%   Û )

      (SET _6=%_6%   Û )

      (SET _7=%_7% ÛÛÛÛ)

   GOTO :EOF

   

   :s_2

   ::  Pad digits to -->

      (SET _1=%_1% ÛÛÛÛ)

      (SET _2=%_2% Û  Û)

      (SET _3=%_3%    Û)

      (SET _4=%_4% ÛÛÛÛ)

      (SET _5=%_5% Û   )

      (SET _6=%_6% Û  Û)

      (SET _7=%_7% ÛÛÛÛ)

   GOTO :EOF

   

   :s_3

   ::  Pad digits to -->

      (SET _1=%_1% ÛÛÛÛ)

      (SET _2=%_2%    Û)

      (SET _3=%_3%    Û)

      (SET _4=%_4% ÛÛÛÛ)

      (SET _5=%_5%    Û)

      (SET _6=%_6%    Û)

      (SET _7=%_7% ÛÛÛÛ)

   GOTO :EOF

   

   :s_4

   ::  Pad digits to -->

      (SET _1=%_1% Û  Û)

      (SET _2=%_2% Û  Û)

      (SET _3=%_3% Û  Û)

      (SET _4=%_4% ÛÛÛÛ)

      (SET _5=%_5%    Û)

      (SET _6=%_6%    Û)

      (SET _7=%_7%    Û)

   GOTO :EOF

   

   :s_5

   ::  Pad digits to -->

      (SET _1=%_1% ÛÛÛÛ)

      (SET _2=%_2% Û   )

      (SET _3=%_3% Û   )

      (SET _4=%_4% ÛÛÛÛ)

      (SET _5=%_5%    Û)

      (SET _6=%_6% Û  Û)

      (SET _7=%_7% ÛÛÛÛ)

   GOTO :EOF

   

   :s_6

   ::  Pad digits to -->

      (SET _1=%_1% ÛÛ  )

      (SET _2=%_2% Û   )

      (SET _3=%_3% Û   )

      (SET _4=%_4% ÛÛÛÛ)

      (SET _5=%_5% Û  Û)

      (SET _6=%_6% Û  Û)

      (SET _7=%_7% ÛÛÛÛ)

   GOTO :EOF

   

   :s_7

   ::  Pad digits to -->

      (SET _1=%_1% ÛÛÛÛ)

      (SET _2=%_2% Û  Û)

      (SET _3=%_3%    Û)

      (SET _4=%_4%   ÛÛ)

      (SET _5=%_5%   Û )

      (SET _6=%_6%   Û )

      (SET _7=%_7%   Û )

   GOTO :EOF

   

   :s_8

   ::  Pad digits to -->

      (SET _1=%_1% ÛÛÛÛ)

      (SET _2=%_2% Û  Û)

      (SET _3=%_3% Û  Û)

      (SET _4=%_4% ÛÛÛÛ)

      (SET _5=%_5% Û  Û)

      (SET _6=%_6% Û  Û)

      (SET _7=%_7% ÛÛÛÛ)

   GOTO :EOF

   

   :s_9

   ::  Pad digits to -->

      (SET _1=%_1% ÛÛÛÛ)

      (SET _2=%_2% Û  Û)

      (SET _3=%_3% Û  Û)

      (SET _4=%_4% ÛÛÛÛ)

      (SET _5=%_5%    Û)

      (SET _6=%_6%    Û)

      (SET _7=%_7%    Û)

   GOTO :EOF

   

   :s_-

   ::  Pad digits to -->

      (SET _1=%_1%     )

      (SET _2=%_2%     )

      (SET _3=%_3%     )

      (SET _4=%_4% ÛÛÛÛ)

      (SET _5=%_5%     )

      (SET _6=%_6%     )

      (SET _7=%_7%     )

   GOTO :EOF

   

   :s_:

   ::  Pad digits to -->

      (SET _1=%_1%    )

      (SET _2=%_2%  Û )

      (SET _3=%_3%    )

      (SET _4=%_4%    )

      (SET _5=%_5%    )

      (SET _6=%_6%  Û )

      (SET _7=%_7%    )

   GOTO :EOF

Es curioso o no? :)..

Weno esto es todo por hoy, espero que algo les sirva jeje

un saludo
 
F

Ferminpin

Guest
Buenas este code lo encontré por la web y bueno me parece interesante para los que no saben apenas comandos :

Código:
@echo off

echo Directorio actual: %CD%

echo Fecha: %DATE%

echo Hora: %TIME%

echo Numero aleatorio: %RANDOM%

pause
No sabia como empezar, se nota no..? bueno pues vamos con algúna opción del netstat:

El netstat sirve para comprobar el estado actual de la red...

Código:
netstat -a Mostrar todos los puetos y conexiones operativos actualmente..

netstat -n Mostrar numero de puerto y direcciones operativos actualmente..

netstat -r Mostrar la tabla de rutas (nos dice si hay rutas persistentes).

netstat -s Mostar estadisticas por protocolo .

netstat -p Mostrar las conexiones activas TCP o UDP.
Este otro codigo es para poder buscar un proceso ACTIVO y saber su ubicacion (usa el find.exe de windows):

Código:
@echo off

:ON

cls

rem ¡Ruta del archivo activo!

cd %homedrive%\

:Code

set /p proceso=Nombre de proceso : 

if not defined proceso goto:Code

for /f "tokens=*" %%x in ('wmic process get executablepath ^| find /i "%proceso%"') do (set ruta=%%x)

echo %ruta%

pause

goto ON
*Este ultimo code no esta "perfect", pero no tengo tiempo pa arreglarlo

Bueno venga, un saludo
Una pregunta rápida ¿se puede utilizar el CALL para ejecutar procesos en PARALELO?¿cómo?

Gracias
 
F

FranGK

Guest
:coolioju: No entendí bien la pregunta, ponme un ejemplo de lo que quieres hacer :coolioju:

De todas formas te dejo este ejemplo, aunque no creo que pidas esto, porque es bastante facil:

Nombre:1.bat

Código:
@echo off

call d.bat

call x.bat

pause

Nombre:d.bat

Código:
@echo off

echo Funcion A > D.txt

Nombre:x.bat

Código:
@echo off

echo Funcion B > X.txt

De todas formas especifica un poco mas porque como te dije antes no lo entendí muy bien..

Un saludo :coolioju:

PD:Si tu pregunta va relacionada con la multiprogramacion con archivos por lotes dilo
 
Estado
Cerrado para nuevas respuestas.
Arriba Pie