Este es un tutorial sencillo para principiantes en el que se intenta explicar de la forma mas simple los principales comandos.
El lenguaje batch no es muy difícil pero para personas que se estén iniciando puede resultar un poco complicado así que intentare explicarlo de la forma mas sencilla posible.
¿Qué es batch?
Un archivo batch es un archivo de texto sin formato guardado con la extensión bat y que contiene un conjunto de ordenes llamadas comandos de DOS.
en resumen un archivo batch es un archivo de texto en el que se a escrito un conjunto de códigos que van a ser ejecutados de forma lineal (ya lo irán entendiendo con ejemplos mas adelante) y ese archivo de texto debe ser guardado con la extensión .bat, es decir un nombre cualquiera.bat ej: nombredelarchivo.bat
Es muy útil para automatizar tareas, por ejemplo un programa que nos abra todas las herramientas que necesitamos para trabajar en un determinado proyecto, de esta forma cada vez que queramos trabajar solo tendremos que pulsar un botón y no hará falta abrir una a una todas las aplicaciones necesarias, pero su utilidad no se queda en esto, todo hacker debe conocerlo, especialmente su equivalente en linux: los scripts de bash.
La terminación bat viene del propio nombre del lenguaje (batch) que debido a que las extensiones de archivos (.bat, .exe, .txt etc) solo pueden tener 3 letras quedo reducido a eso.
PARTE 1
Lo primero que debemos hacer es abrir un archivo de texto y guardarlo con un nombre seguido de .bat tal como expliqué anteriormente en ese archivo vamos a poner nuestros comandos.
Empecemos quitando el eco, para eso escribimos: @echo off
@echo off
pause
exit
Si no sabes lo que es el eco prueba a quitar @echo off y verás lo que pasa.
Pause sirve para hacer una pausa en la secuencia (pulsa una tecla para continuar)
y exit sirve para finalizar
Bien ahora vamos a continuar con otro código: el echo y el echo. (nótese el punto)
El echo sirve para escribir algo en pantalla por ejemplo echo hola escribiría hola en la pantalla
y echo. sirve para dejar un espacio
@echo off
echo.
echo Hola TodoHacker
echo.
echo Como estas?
pause
exit
Prueba a ponerlo y comprueba lo que pasa
Es muy importante que vayas entendiendo todo esto paso a paso sino se irá complicando bastante.
Ahora vamor a ver una variacion del pause: pause>NUL, sirve para hacer una pausa sin poner nada en la pantalla podéis probarlo sustituyendo pause por pause>NUL en los códigos anteriores
Esto lo vamos a utilizar para poner nosotros el mensaje que queramos en vez del «pulsa una tecla para continuar»
y lo vamos a hacer poniendo algo seguido de pause>NUL veréis el efecto
@echo off echo.
echo Pulsa una tecla para ir a la siguiente parte del tutorial de todohacker.com
pause>nul
echo.
echo Bienvenido a la segunda parte del tutorial echo. echo Pulsa una tecla para salir
pause>nul
exit
PARTE 2
El comando cls sirve para borrar la pantalla.
@echo off
echo.
echo Pulsa una tecla para ir a la siguiente parte del tutorial
pause>nul
cls
echo.
echo Bienvenido a la segunda parte del tutorial de todohacker
echo.
echo Pulsa una tecla para salir
pause>nul
exit
Este es muy sencillo, ejecútalo y te darás cuenta de su utilidad.
Ahora vamos a pasar a las variables, algo que tienen casi todos los lenguajes de programación y que, como verás, te da infinitas posibilidades.
Una variable es un nombre que designa un valor y como su nombre indica puede variar. Gracias a esto podemos guardar valores y darles nombre.
Para poner una variable debemos escribir se nombrevariable= valor. ej: set nombre= pepito
y para referirnos a esa variable debemos escribir el nombre de la variable entre %% ejemplo: hola %nombre%
@echo off
set nombre= Pepito
echo.
echo Hola %nombre%
echo.
pause
exit
Es muy fácil pero es importante que lo entiendas, por que en esto se basa todo lo que viene a continuación, si te estas preguntando por que es realmente importante, ahora vas a verlo.
Ahora vamos a hacer que podamos poner nosotros mismos la variable, es decir que la persona que usa el programa puede asignar un valor.para eso en vez de poner set debemos poner set/p
ej: set/p nombrevariable= valor
@echo off
echo.
set/p nombre= ¿Como te llamas?
cls
echo.
set/p años= ¿Cuantos años tienes?
cls
echo.
echo Hola %nombre% tienes %años% años.
echo.
echo Pulsa una tecla para salir.
pause>nul
exit
Una vez entendido esto vamos a empezar a utilizar las variables por ejemplo para hacer operaciones con ellas.
Para eso utilizaremos set/a. es como el set/p pero no se muestra en pantalla y realiza operaciones, porcentajes, sumas, restas etc.
Estos son los signos que podemos utilizar:
+ para sumar
– para restar
* para multiplicar
/ para dividir
Y lo vamos a expresar así:
@echo off
echo.
set/p numero1= Dime un numero
cls
echo.
set/p numero2= Dime otro para sumar al anterior
cls
set/a suma= %numero1% + %numero2%
echo.
echo %numero1% + %numero2% = %suma%
echo.
echo Pulsa una tecla para salir.
pause>nul
exit
PARTE 3
En esta parte del tutorial vamos a aprender a trabajar con if, if not, else y goto.
If sirve para expresar una condición. Es decir si pasa esto entonces haz esto. Para ello vamos a utilizar la siguiente estructura: if condición acción
ejemplo: if %variable%==4 echo bien!! esto quiere decir que si el valor de la variable es igual a cuatro entonces escribe «bien!!»
Las distintas condiciones que podemos comprobar con un if en batch son las siguientes: (operadores)
if variable==valor (para expresar si la variable es igual a valor haz esto)
if variable LSS valor (para expresar si la variable es menor a valor haz esto)
if variable GTR valor (para expresar si la variable es mayor a valor haz esto)
if variable LEQ valor (para expresar si la variable es menor o igual haz esto)
if variable GEQ valor (para expresar si la variable es mayor o igual haz esto)
if not se utiliza igual que if pero expresa todo lo contrario ej:
if not variable==valor (para expresar si la variable NO es igual a «valor») y lo mismo con el resto de condiciones vistas arriba.
@echo off
echo.
set/p variable= ¿Cuanto son 2 + 2?
cls
echo.
if %variable%==4 echo bien!!
echo.
pause
exit
Aquí también se podría utilizar el goto que sirve para enviar la lectura de comandos a otro sitio del bat por ejemplo if variable==valor goto correcto, después mas abajo pondríamos una «etiqueta» con ese nombre después de dos puntos ej: :correcto así quedaría: si variable es igual a valor entonces ir al menú «correcto» y en el ya escribiríamos lo que queramos con un ejemplo lo vas a entender mucho mejor.
@echo off
echo.
set/p variable= ¿Cuanto son 2 + 2?
cls
echo.
if %variable%==4 goto correcto
echo.
:correcto
echo bien!!
pause
exit
En este caso no tendría mucho sentido pero cuando tenemos más variables y muchas opciones a elegir es esencial útil ya lo iréis viendo
Este ejemplo indicaría que si la respuesta a la pregunta «¿cuanto son 2+2?» es 4 entonces escribe bien!!
pero ¿qué pasa si la respuesta no es esa? pues para eso sirve else, se utiliza así:
if variable==valor goto correcto else goto incorrecto esto significaría que si la respuesta es 4 entonces escribe bien pero si la respuesta es cualquier otra cosa escribe mal!!!
@echo off
:inicio
echo.
set/p pregunta= ¿cuanto son 2 + 2?
cls
echo.
if %pregunta%==4 goto correcto else goto incorrecto
:incorrecto
echo.
echo Mal!!
echo.
echo Vuelve a intentarlo
pause
cls
goto inicio
:correcto
echo.
echo Bien!!
echo Pulsa una tecla para salir de este ejemplo de www.todohacker.com
pause>nul
exit
He añadido lo de inicio por que así si es incorrecto vuelve a empezar.
Una vez que hemos llegado hasta aquí si lo habéis entendido podréis hacer cosas como esta:
@echo off
:inicio
echo.
set/p variable= ¿cuanto son 2 + 2?
cls
echo.
if %variable%==4 goto correcto else goto incorrecto
:incorrecto
echo.
echo Mal!!
echo Intentalo de nuevo
pause
cls
set/p variable1= ¿Cuanto son 5 - 3?
cls
if %variable1%==2 goto correcto else goto incorrecto1
:incorrecto1
echo.
echo Mal!!
echo Intentalo de nuevo
pause
cls
set/p variable2= ¿Cuanto son 4 * 4?
cls
echo.
if %variable2%==16 goto correcto else goto incorrecto2
:incorrecto2
echo.
echo mal!!
echo.
echo Intentalo de nuevo
pause
cls
goto inicio
:correcto
echo.
echo Bien!!
echo Presione una tecla para salir de este ejemplo de www.todohacker.com
pause>nul
exit
Te animo a que lo pruebes y te diviertas un rato modificandolo, échale imaginación, no hay limite a lo que puedas hacer 😉
PARTE 4
En esta parte vamos a ver algo muy sencillo, se trata del código de colores de las letras y el fondo de la consola simplemente se expresa con una combinación de números y letras de esta forma:
Primero ponemos color, para indicar que lo que le vamos a decir es el color del la letra y el fondo, y seguidamente debemos poner dos números sin espacio, el primero es el color del fondo y el segundo el color de letra.
Código de colores:
A = Verde claro
B = Aguamarina claro
C = Rojo claro
D = Púrpura claro
E = Amarillo claro
F = Blanco brillante
0 = Negro
1 = Azul
2 = Verde
3 = Aguamarina
4 = Rojo
5 = Púrpura
6 = Amarillo
7 = Blanco
8 = Gris
9 = Azul claro
Sabiendo esto, si queremos que el fondo sea blanco y las letras negras ponderemos color 70 pruebalo tu mismo. Abajo hay unas fotos explicativas.
Ahora otra cosa muy sencilla.
No se si os habéis fijado en la barra de titulo de la terminal, pone por defecto la ubicación en la que nos encontramos, normalmente system32.
Pues esto se puede cambiar poniendo simplemente «title» y el nombre que le queramos poner.
Pondré un ejemplo conjunto para los códigos de color y titulo.
@echo off
title Prueba de color www.todohacker.com
color 70
echo.
echo Bienvenido a la prueba de color del cmd de todohacker.com
echo.
echo Pulsa una tecla para cambiaer al siguente color
pause>nul
color 4f
pause
exit
Prueba a cambiar los colores para entenderlo mejor.
Ahora vamos a ver redireccionamientos, son muy útiles ya lo verás.
Se utiliza > para escribir algo y >> para añadir algo a un documento que ya tenia algo escrito por ejemplo.
Se utilizan así: echo hola>archivo.txt esto escribiría hola en un archivo de texto situado en el directorio en el que nos encontramos, es decir por defecto en el que tenemos guardado el archivo de bat que ejecuta esta orden. Si el dicho archivo de texto con nombre «archivo» no existe lo crea.
@echo off
echo pulsa una tecla para crear el archivo
pause>nul
echo hola, esto es un ejemplo de todohacker.com > archivo.txt
echo archivo creado
pause
exit
Si os fijáis nos crearía un documento de texto en el escritorio (en caso de que el bat este en escritorio) con el nombre de «archivo», y escribiría dentro hola se pueden crear otro tipo de archivos, modificando la extensión, .txt, .bat etc.
Pero que pasaría si en el archivo queremos escribir mas lineas? en ese momento es cuando utilizamos el >>. si tenemos un documento de texto que pone hola y le decimos que escriba otra cosa así: echo que tal? > archivo.txt, lo remplazaría, es decir, pasaría a poner que tal? en la primera linea.
Pero si ponemos: echo que tal? >> archivo.txt se añadiría al hola una linea mas abajo. Pruébalo tu msimo, aquí pongo dos códigos de ejemplo para que veas la diferencia.
@echo off
echo hola > archivo.txt
echo.
echo Abre al archivo creado antes de continuar y mira lo que pone
echo Cierra el archivo y continua
echo.
pause
cls
echo que tal? > archivo.txt
echo.
echo Fijate en el archivo creado, pondra que tal? "hola" se ha borrado.
echo.
pause
exit
@echo off
echo hola > archivo.txt
echo.
echo Abre al archivo creado antes de continuar y mira lo que pone
echo Cierra el archivo y continua
echo.
pause
cls
echo que tal? >> archivo.txt
echo.
echo Fijate en el archivo creado, "pondra que tal?" despues de hola, no ha borrado nada.
echo.
pause
exit
Es posible que te hayas dado cuenta de algo, y es que esto es lo mismo que usamos para el pause>NUL. Efectivamente lo que estamos haciendo es redireccionar el texto por defecto a un archivo llamado «NUL», en teoría windows no debería crear este archivo, pero se que a veces lo crea, en todo caso no es un problema demasiado grave.
Espero que se haya entendido todo, la parte de las redirecciones es muy importante por que nos va a servir varias pruebas que hagamos posteriormente en creación de virus y scripts automáticos.
PARTE 5
En la anterior parte hemos aprendido a crear archivos, en esta vamos a aprender como ejecutarlos, borrarlos, copiarlos, cambiar sus atributos etc.
Empecemos por ejecutarlos.
Retomemos el ejemplo anterior en el que creamos un archivo de texto con dos lineas, bueno pues ahora vamos a ejecutarlo y a borrarlo.
@echo off
echo hola, esto es un ejemplo de todohacker.com > archivo.txt
echo.
echo abre al archivo creado antes de continuar y mira lo que pone
echo cierra el archivo y continua
echo.
pause
cls
echo que tal? >> archivo.txt
echo.
echo fijate en el archivo creado, "pondra que tal?" despues de hola, no ha borrado nada.
echo.
pause
exit
Para ejecutar un archivo utilizaremos el comando start y para borrarlo el comando del acordaos de especificar siempre la extensión.
@echo off
echo hola, esto es un ejemplo de todohacker.com > archivo.txt
pause
echo que tal? >> archivo.txt
echo.
echo El archivo se acreado
echo.
echo Ahora vamos a ejecutarlo (abrirlo)
pause
start archivo.txt
cls
echo.
echo bien puedes cerrar el archivo por que vamos a borrarlo
pause
del archivo.txt
cls
echo.
echo Archivo borrado con esto se puede borrar cualquier archivo, solo hay que saber el nombre 😀
pause
exit
Al comando del se pueden añadir distintas letras para que funcione de distinta forma:
del/f Modo force. Borra incluso los archivos de solo lectura
del/s Borra también los subdirectorios.
del/p Pide confirmación
del/q Modo silencioso. No pide confirmación en ningún caso
Se pueden utilizar varios en el mismo del
por ejemplo: del/f/p archivo.txt
borraría el archivo aunque fuese de solo lectura y pediría confirmación
Por supuesto para el comando del también se puede especificar la ruta del archivo si este no estuviera en el mismo directorio
ej: del c:/ruta/correspondiente/archivo.txt
Ahora vamos con el comando cd que utilizaremos para cambiar el directorio general de la terminal, es decir, si el archivo bat esta en el escritorio la terminal estará en ese directorio por defecto y para cambiarlo utilizaremos el mencionado cd.
Por ejemplo si queremos crear el archivo txt del ejemplo en mis documentos en vez de en el escritorio podriamos escribir la ruta cada vez que nos refiramos al archivo pero es mas sencillo si cambiamos el directorio actual de la terminal para que siempre se dirija allí.
Para ello escribiremos: cd C:\Documents and Settings\Propietario\Mis documentos (los nombres de los directorios pueden cambiar según el ordenador)
y todo lo que creemos o eliminemos sin especificar la carpeta lo hará en mis documentos
También podemos escribir:
cd..(con los puntos) e irá al directorio superior es decir, si estamos en mis documentos se trasladará a propietario, en el caso del ejemplo
o cd \\ y se trasladara a la raíz del directorio. en este caso C:
Llegados a este punto tienes los conocimientos necesarios para continuar aprendiendo por tu cuenta a partir de experimentación y experiencia, voy a nombrar algunos comandos más:
rd borra un directorio de raíz solo tenemos que especificar la ruta del directorio y borra todo lo que tenga dentro, carpetas, mas archivos, etc.
format formatea una unidad por ejemplo format k: formatearía un pendrive externo o le que tengamos en esa unidad, o format c: (ya podéis imaginaros lo que hace)
taskkill termina un proceso como por ejemplo el skype muy útil para bromas ej: taskkill Skype.exe cerraría el skype. Puedes ver los procesos que tienes activos pulsando ctrl+shift+esc. (shift es la tecla que esta sobre el ctrl de mayusculas.)
shutdown también es muy útil para bromas y según lo que lleve detrás significa una cosa u otra:
-p Apaga el equipo local sin tiempo de espera ni advertencia.
-h Hiberna el equipo local.
-l Cierra la sesion.
-g Cierra la sesion y reinicia el equipo
-s Apaga el equipo.
-r Reinicia el equipo.
-e Documenta la razón del cierre inesperado de un equipo.
-m \\equipo Especifica el equipo de destino. (explicado mas abajo)
-t xxx Establece el período de tiempo de espera antes del cierre en xxx segundos.
-c «comentario» Comentario acerca de la razón del reinicio o apagado.
-f Fuerza el cierre de las aplicaciones sin advertir previamente a los usuarios.
-a Cancela el apagado.
(nota: Estas opciones solo están disponibles a partir de windows 7, en versiones anteriores solo tenemos -s, -r, -t, -a, -c)
Esto es básicamente lo que utilizo en el titorial de crear un minivirus pero de forma mas sencilla
un ejemplo
shutdown -s -t 60 (tiempo en segundos) -c virus intrusion
Cuando se ejecute pondrá una cuenta atrás de 1 min, pondrá el mensaje de: «virus intrusion» y se apagará
para cancelar la cuenta atrás debemos poner shutdown -a, se puede poner directamente en inicio, ejecutar (simbolo de windows + R) y se cancelara automáticamente.
msg * es otro comando muy útil para bromas hace que salga un mensaje de windows con el texto que le pongan
Por ejemplo: msg * atención su sistema contiene software ilegal estamos enviando la información al FBI
Ahora aprenderemos a utilizar el comando copy que como su nombre indica sirve para copiar archivos.
Se utiliza de este modo copy ruta del archivo que queremos copiar «ruta del directorio donde lo queremos copiar incluyendo el nuevo nombre del archivo.
Ejemplo: si queremos copiar un archivo que se llama cosa.txt de el directorio del escritorio a mis documentos, pondremos: copy C:\Documents and Settings\Propietario\Escritorio\cosa.txt «C:\Documents and Settings\Propietario\Mis documentos\cosa2.txt
y por último para cambiar los atributos de un archivo utilizaremos attrib
arttrib+ nombre del archivo o ruta, mostraría los atributos del archivo.
Los atributos son solo lectura, oculto, sistema
Para cambiarlos utilizaremos:
r => Lectura. Solo lectura con +r, normal con -r
h => oculto. Se activa con +h y desactiva con -h
s => Sistema. Se activa con +s y desactiva con -s
ej:attrib +h se pondría oculto como atributo
Aquí concluye este tutorial, estos son los comandos mas básicos que me ha parecido importante mencionar, hay que decir que he obviado cosas que podrían considerarse importantes, como por ejemplo los bucles, pero este tutorial tenia la misión de ser una introducción, y no me ha parecido conveniente extenderlo mas, ahora es tu misión continuar aprendiendo, lo más importante ya lo sabes y ahora el limite es tu imaginación.
Solo me queda para concluir mencionar un modo de nombrar a los archivos en general
para ello utilizaremos el * que nombra a cualquier archivo es decir si decimos:
del archivo.* borraria todos los archivos que se llamen «archivo» sean de la extensión que sean
del *.txt borraría todos los archivos de texto se llamen como se llamen
del a*.txt borraría todos los documentos de texto que empiecen por a
del nombre.d* borraría todos los archivos que se llamen «nombre» y que su extensión empiece por d como doc o dat
También podemos utilizar ? se usa igual que * pero sustituye a una única letra
ej: del pan?l.txt boraria todos los archivos de texto que empezasen por pan siguiese una letra cualquiera y terminase en l por ejemplo panel, panal etc.
Espero que hayan entendido todo. Cualquier duda que tengan por favor pongan un comentario y se responderá con mucho gusto.
Si quieres puedes poner en una ventana de terminal help y saldrán todos los comandos, por supuesto TODOS los comandos mencionados aquí se puede escribir directamente en la ventana de terminal sin necesidad de crear un archivo bat.
Este tutorial tiene copyleft de TodoHacker.com si lo usas, pon las fuentes.
Todohacker by 4m1g0 is licensed under a Creative Commons.
Como seria la secuencia de comando en un batch windows o linux para extraer un archivo si previamente se accede con una cuenta gmail
la secuencia manual seria:
en una ventana accedo a internet
1.- https://console.cloud.google.com/storage/browser/gcp-public-data-goes-16/ enter … ingreso mi usuario y contraseña
2.- Accedo a la carpeta tipo ABI-L2-MCMIPF/
3.- Accedo a la carpeta año 2018/
4.- Accedo a la carpeta dia juliano 139/
5.- Accedo a la carpeta hora UTC 17/
6.- busco el ultimo archivo con codigo OR_ABI-L2-CMIPF-M3C14
7.- Luego click (extrae) OR_ABI-L2-CMIPF-M3C14_G16_s20181391715420_e20181391726187_c20181391726272.nc
Todo estos procesos como lo haria en comando de linea o con un batch
Gracias
Hola Jorge,
Muy complicado hacer eso en bat como lo has descrito. En concreto google cloud tiene una API de programación que te permite acceder a sus ficheros usando diferentes lenguajes de programación y autenticarte usando las credenciales adecuadas.
En este enlace tienes las guías sobre como usarlo, pero es un tema relativamente avanzado… bastante mas allá que este tutorial.
Saludos
hola me podrías ayudar como hago para que me imprima el archivo texto sin tener que hacerlo desde el menu del block de notas talves alguna una opción en el programa o un comando bach ..gracias
Hola 4m1g0: Te felicito…todo un GURÚ….
Yo tengo archivos que programé se abran o carguen siempre al iniciar windows, en menú inicio>programas etc. Y corren perfectamente.
¿Que debo hacer si quiero que al encender mi pc, además que carguen estos programas, por ejemplo, se ejecute una canción en windows media, pero que al finalizar se cierre la ventana de windows media? Se puede desde aquí(windows) o debo hacer un crear un archivo .bat adentro de la carpeta del menu inicio y que comando le doy para que cierre dicha ventana?
Hola Halcón,
Gracias por tu comentario. El problema a la hora de cerrar windows media es que no sabes si ha acabado la canción o no. El reproductor no te avisa cuando termina y no hay una forma sencilla de detectarlo. Lo que puedes hacer, si sabes cuanto dura la canción es, esperar esos segundos y después cerrar windows media… Para esperar se suele usar el comando ping en bat:
@echo off
start calc.exe
PING localhost -n 6
taskkill /im calc.exe
Este código debería abrir la calculadora, esperar 6 segundos y cerrarla.
Hola 4m1g0
CON TUS SABIOS CONSEJOS SI LO LOGRÉ!!!
Cuando arranco mi máquina me gusta que siempre suene una melodía de 20 segundos, y a la vez me indica que la máquina arrancó bien. Intenté mil veces hacerlo desde la consola de sonidos de windows, en inicio de windows ponía el nombre de la melodía, PERO inexplicablemente no funcionaba.
Sólo tuve que hacer una pequeña correción en la línea del taskkill pues cerraba la canción pero NO el reproductor. Te dejo como lo logré.
@ echo off
start C:\Windows\Media\NFL.wav
PING localhost -n 24
taskkill /im WMPLAYER.EXE
Lo único que restaría es que la ventana del ms-dos, quede minimizada durante la ejecución, pero no importa, luego de 24 segundos, se cierra sola.
Felicitaciones 4m1g0
Genial!
Muchas gracias por publicar la solución!
Para minimizar la CMD prueba a poner esto en la primera linea:
La explicación de como funciona está aquí (en inglés): https://stackoverflow.com/questions/9232308/how-do-i-minimize-the-command-prompt-from-my-bat-file
Buenas tardes amigos,
Tengo una consulta, como hacer que al ejecutar un bat, me pida clave y no la muestre en pantalla
al escribirla.
Me podrian ayudar?
Hola Linkcoyan,
Por desgracia no hay una solución simple en Windows, ya que bat no lo soporta por defecto.
Como casi todo esto sería muchisimo más facil usando Linux.
Te dejo un enlace de alguien que ha hecho un código para emular este comportamiento, pero no es simple.
https://stackoverflow.com/questions/30012711/adding-password-masking-to-a-script
Saludos
Hola 4m1g0
Lo logré de nuevo con la referencia que me diste y funcionó, agregándole al final exit nuevamente. Aquí te dejo como funcionó. Ahora si minimiza la ventana del prompt.
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start «» /min «%~dpnx0» %* && exit
@ echo off
start C:\Windows\Media\NFL.wav
PING localhost -n 24
taskkill /im WMPLAYER.EXE
exit
Ahora te pregunto: COMO HAGO PARA MINIMIZAR TAMBIÉN LA APLICACIÓN (wmplayer.exe)? INTENTÉ VARIAS COSAS NO lo consigo. gracias
Para iniciarlo minimizado puedes usar el parámetro /min con este formato:
start /min wmplayer.exe «C:\ruta\musica.mp3»
Saludos 😉
Hola mira tengo una urgencia sobre un scrip
Hoy en un examen me ponia que hacer un menu y con una etiqueta que tuviera que poner la hora otra etiqueta para poder modificarla ahora igual pero en vez de la hora con la fecha y salir
y que si no haciamos nada se saliese
Hola dengo una duda.
como se puede hacer que al agregar una letra ejecute una funcion sin necesidad de presionar enter.
Hola
Me gustaría saber si existe una manera de ejecutar un archivo.bat creado en Linux a Windows
Ejemplo:
He creado un archivo en Linux llamado prueba.bat y lo quiero ejecutar en Windows.
Hola Samuel,
Batch es un lenguaje interpretado, eso quiere decir que lo que escribes es un simple archivo de texto. Lo puedes escribir incluso en el móvil, so lo guardas adecuadamente, windows podrá ejecutarlo.
Todos los sistemas operativos tienen un lenguaje así. En linux se usa bash normalmente.
Saludos
Hola
Creo que no he formulado bien la pregunta xD:
si no me equivoco batch se usa para Windows y bash para Linux, entonces si yo escribo un archivo .bat con el lenguaje bash y lo ejecuto en Windows según he probado no es capaz de leerlo correctamente. ¿Hay alguna manera de poder leerlo?
Otra pregunta:
He escrito el siguiente codigo:
Como resultado final quiero que se sumen dos valores.
En la pregunta ¿Quien es Atlas? le asigno la variable atlascorrecto a la respuesta Fontaine, y luego a la variable atlascorrecto le asigno el valor 1.
En la pregunta ¿Quien es el cordero? hago los mismo solo cambiando la respuesta.
Luego en la etiqueta :final hago una operación para que se sumen los dos valores es decir: atlascorrecto=1 + corderocorrecto=1, realizaria la siguiente operacion 1 + 1
pero al hacerla me aparece el siguiente resultado
Enhorabuena has terminado test tu puntuacion final es: + = +
quiero que me aparezca la suma de los numeros 1 + 1
Siento que tengas que leer todo esto xD.
Muchas Gracias.
Me contesto a mi mismo xD
Ya he encontrado la solución, he creado tres variables en :correcto1, :correcto2 y :correcto3 donde el resultado es 1, y en :fin las he añadido, también cree variables con resultado 0 en :incorrecto1, :incorrecto2 y :incorrecto2 y las añadí a :fin
Les dejo el código por si le sirve a alguien.
Genial Samuel,
Disculpa que no me dio tiempo a revisar tu código y ya te adelantaste tu mismo con la solución.
Me alegra que lo hayas conseguido arreglar, y gracias también por participar y echar un cable a los demás por aquí!!!
Saludos
Hola tengo una duda investique un poco y no entiendo muy bien en la programacion de archivos .bat
es posible usar la funcion GETS.
Y si se puede diganme como se usa.
Hola Francheco,
No, la funcion GETS es del lenguaje de programación C. Es diferente y muy potente, puede ser el siguiente paso si quieres aprender a programar.
Con Batch no hay una forma limpia de hacerlo, pero puedes usar el comando choice. Tienes que indicarle la lista de teclas permitidas y no te dejará pulsar ninguna otra. Pruébalo:
choice /n /C 12345abc /M Elige 1-5, a, b, c:
La respuesta que haya dado el usuario se guarda siempre en la variable %errorlevel% puedes verlo con echo %errorlevel%
Saludos!
Graisas igualmente de mando saludos ya lo probe en mi programa uno sencillo y si me funciona pero cuando lo quiero agregar a mi segundo programa hay un ploblema,
cuando Presiono La Y en donde esta error si me envia a la parte de ayuda pero cuando presiono N no me envia a la parte de menu. ¿Porque?
Hola Franchesco,
El problema es que %errorlevel% no contiene la letra que el usuario insertó sino la posición de esa letra en la lista que tu pedías en el comando choice.
Puedes verlo con este script:
Tendrías que sustituir en tu script la comparación que haces en la parte de ir al menú por lo siguiente:
Saludos
Porque no as definido :menu
Hola 4m1g0, me recuerdas? tu me ayudaste a correr minimizado una melodía en wmplayer. Recuerdas?
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start “” /min “%~dpnx0” %* && exit
@ echo off
start C:\Windows\Media\NFL.wav
PING localhost -n 24
taskkill /im WMPLAYER.EXE
exit
Intenté varias cosas con tu consejo para minimizar y lo más que conseguí fue ponerlo en modo máscara, que ocupa una nada. Mi pregunta AHORA es esta:
Este mismo .bat lo quise hacer en otra compu, y la melodía la tengo en carpetas con nombres compuestos y a pesar de ponerle toda la ruta, dice que no la encuentra.
Te dejo como lo hice
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start “” /min “%~dpnx0” %* && exit
@ echo off
start /min C:\MIS DOCUMENTOS PERSONALES\MUSICA Y MAS\CANCIÓN.MP3
PING localhost -n 24
taskkill /im WMPLAYER.EXE
exit
pero me dice «C:\MIS» no se encuentra. Quise solucionarlo escribiendo guiones bajos, en dicha línea así C:\MIS_DOCUMENTOS_PERSONALES\MUSICA_Y_MAS\CANCIÓN.MP3 Y TAMPOCO. LA PC insiste en que la ruta está mal
Que sucedió 4m?
gracias
Hola.
Creo que la ruta tienes que escribirla de la siguiente manera «C:\MIS DOCUMENTOS PERSONALES\MUSICA Y MAS\CANCIÓN.MP3»
Tienes que poner las comillas «» ya que las carpetas tienen espacios.
Gracias Samuel, fíjate que lo hice lo que me dijiste, pero abre dos ventanas de cmd, en una la supuesta ejecución y otra vacía que solo dice c:\usuario\halcon\documentos y nada más y en la otra corre y descuenta los segundos pero ni siquiera abre el wmplayer. Quizás el error está en la línea inicial
if not DEFINED IS_MINIMIZED set IS_MINIMIZED=1 && start “” /min “%~dpnx0” %* && exit
que no la entiendo del todo, pero también esta línea aparece en cmd después de
c:\usuario\halcon\documentos
En esta máquina de donde te hablo funcionó a la perfección. La unica diferencia con la otra es la ubicación de la canción y nombre de las carpetas, por ello NO entiendo que sucede que NO corre.
gracias
Hola Halcón,
Lo que comenta Samuel es correcto, tienes que poner las rutas entre comillas siempre que lleven espacio, como él ha indicado.
Con respecto a lo que comentas, me parece muy raro que se funciona en un ordenador no funciona en el otro. Comprueba que la ruta está bien escrita y entre comillas. Y MUY IMPORTANTE, si has copiado el script de aqui, o de algún otro lado para cambiarlo de ordenador, fíjate bien por que a pesar de que aparentemente todo funciona, las comillas y otros caracteres especiales no son los mismos al copiarlos. Lo mejor ante la duda es que borres todo (incluido la primera linea) y lo escribas desde 0 para asegurarte. O bien que revises manualmente todas las comillas.
Saludos
Hola
Siento ser pesado xD
Me gustaría hacer con batch cosas más específicas como por ejemplo cambiar la dirección ip o cambiar de usuario…
Por lo que tengo entendido hace falta aprender como funciona el registro de Windows.
¿Me podrías decir alguna página donde lo expliquen? Preferiblemente en Español aunque si es en Inglés también me sirve.
Gracias
Hay algunos comandos específicos para eso en bat.
Por ejemplo puedes ver la ip o ips asignadas a tu equipo con el comando: ip config
Puedes realizar acciones más complejas sobre las interfaces de red con el comando netsh. Puedes consultar la sintaxis aquí: https://docs.microsoft.com/es-es/windows-server/networking/technologies/netsh/netsh-contexts
hola 4m1g0 quiero consultarte algo he creado un bat para hacer backup a mis usuarios y usuarias. ademas, quiero crear un bat que me brinda que bakup se ha realizado correctamente y quienes no realizo su respectivo backup.Agradeceria tu respuesta.
Hola,
Gracias por seguirnos. Por tu pregunta no entiendo de que quieres hacer backup concretamente… ¿Tienes algo ya hecho? muéstranos el código y lo vamos viendo juntos.
Saludos
Hola 4m1g0, me recuerdas? El de la canción al iniciar windows. Te cuento que según tu último comentario, eliminé el script inicial, y lo corrí en mi 2do ordenador, tal y como corrió bien en este 1er ordenador, lo deje igualito como lo dice mi conversación del 31.5.18. si te das cuentas lo único que cambia es la ruta en mi ordenador 2, y como dijo Samuel, le puse entre comillas por ser nombres compuestos, PERO NO FUNCIONÓ. Te lo dejo
@ echo off
start /min «C:\MIS DOCUMENTOS PERSONALES\Bkup\Wavs y media\Media\wavinimnf.wav»
PING localhost -n 24
taskkill /im WMPLAYER.EXE
exit
saludos y gracias 4m1g0
Hola de nuevo,
Siento el retraso, mucho trabajo últimamente.
¿Que pasa en lugar de lo esperado? ¿estás seguro de que las comillas están bien puestas? Si las copias y pegas de aquí no funciona, tienes que ponerlas a mano tecleando, por que el carácter es diferente aun que visualmente es igual.
Si ya has comprobado todo eso, intenta abrir una ventana de CMD y ejecutar manualmente linea por linea a ver que ocurre, seguramente salga algún error que nos de una pista.
Saludos
Hola 4mg10, tenías a toda la comunidad extrañada de tu silencio, pero que bueno que era por trabajo. Probé lo que dijiste y NUEVAMENTE, como todo un gurú, diste en el clavo. Todo el script está bien copiado, pero cuando Samuel me dijo que pusiera comillas, no funcionaba, hasta que cambié de lugar las comillas. Mira:
ASI NO FUNCIONÓ start /min «C:\Mis doc……
ASÍ SI FUNCIONÓ start /min C:»\Mis doc…..
Era el lugar de las comillas, que debe ir después de la C
gracias de nuevo
Hola Brother muchas gracia ..Buen tutoria aprendi mucho..
pero tengo una preguta..Puedo ejecutar teclas Mediante ese lenguaje??
Hola David,
Se puede hacer, pero es un tema un poco avanzado para este tutorial. He hablado de eso ya anteriormente en este comentario.
Saludos
Estimado necesito su ayuda estoy intentando programar una piramide de numeros de la siguiente manera
1
22
333
4444
55555
666666
7777777
88888888
999999999
he echo mi programación de la siguiente manera
@ echo off
set x=0
for /l %%i in (1,1,8) do (
for /l %%g in (1,1,1) do ( call :piri %%i
)
)
:piri
set /a x= %x%+1
set x=%x%
echo %x%%y%
set y=%x%%y%
set /a y=%y%+1
:eof
pero la piramide me queda de esa manera
1
22
323
4324
54325
654326
7654327
87654328
987654329
favor ayudar si estoy bien encaminado o si se puede hacer de otra manera
atento a su respuesta
Hola Gabriel,
Me parece que te estás complicando más de lo necesario.
Fíjate en el problema, necesitas hacer 9 iteraciones (una por cada linea)
En cada iteración i tienes que imprimir i veces el número i.
iteración 1, 1 vez el 1
iteración 2, 2 veces el 2… etc.
Por lo tanto necesitas 2 bucles anidados: el primero del 1 al 9 y el segundo del 1 al i (siendo i el número de iteración del primer bucle). Fíjate en el siguiente código:
Si te fijas el código anterior es exactamente lo que comenté antes, lo único raro es que queremos imprimir los primeros números seguidos (sin saltar de linea) y para eso uso el comando echo|set /p=%%i que imprime i sin pasar de linea. Solo el último número de cada linea se imprime con echo, para pasar a la siguiente linea.
El resultado es este:
Hola 4m1g0,
Estoy atascado y necesito tu ayuda por favor. Tengo una serie de datos en un .txt sacados de una consulta de una base de datos y necesito usar esos datos en un .bat para pasárselos como parámetros a una orden.
He visto en otros tutoriales como guardar los datos de un fichero de texto en una variable, pero claro en mi caso necesito los distintos datos de la consulta (son 4) en variables distintas y usar esas variables en mi .bat para pasarlas como parámetros de una orden.
No se si me he explicado muy bien pero espero que lo entiendas. Dime por favor como solucionar esto o si se te ocurre otro método mas sencillo.
Un saludo.
Hola Sandritto,
Lo que pides requiere un procesamiento relativamente complejo, no es de iniciación.
El proceso se llama parsear, y consiste en leer el fichero e ir interpretando lo que hay en el y qué significa.
En bat se suele hacer con un bucle for con el parámetro delims.
Te dejo aquí un enlace de stack overflow en el que ponen un ejemplo bastante claro de parseo de un fichero con variables separadas por comas:
https://stackoverflow.com/questions/17453085/windows-batch-to-read-file-and-parse-lines-into-tokens-and-variables#
Pruébalo e intenta entenderlo bien antes de modificarlo para que haga lo que necesitas.
Saludos
Muchas gracias por la respuesta. Me pondré a tope con ello.
Otra duda, estoy realizando consultas a una base de datos mediante la linea de comandos. El caso es que para realizar estas consultas uso el comando/utilidad ‘sqlcmd’. Al introducir ese comando la consola entra como en otra interfaz por así decirlo y dentro puedes ejecutar otros comandos que sirven para consultar la base de datos, entonces quería saber si para ponerlo en el .bat se pondrían como comandos normales o habría que hacer algo especial con eso.
Gracias de antemano.
muchas gracias por el tutorial
mi consulta es: quiero hacer un bucle con una frase «ëjemplo» pero avanza muy rápido y no se puede leer hay forma para que las oraciones avancen de una forma mas pausada?
o si uso el comando msg * se puede combinar con un bucle? o hacer que aparezcan en distintas zonas de la pantalla no en el mismo lugar?
gracias.
Hola Jonathan,
Para hacer esperar en bat suele usarse el comando ping (por que tarda 1 segundo por cada iteración). Ejemplo:
El comando msg lo puedes meter dentro de un bucle sin problemas, pero saldrán en la misma zona de la pantalla…
Saludos
Hola 4m1g0, pido disculpas por haber estado subiendo codigos a tus usuarios sin tu concentimiento, mi intencion es ayudarlos, nada de codigos maliciosos te lo aseguro… he ideado algunos que seguramente resolveran algunas interrogantes en tu blog, pero los codigos son extensos si te intereza hacerte de esos codigos, escribeme y con gusto te los envio…
buen día
trabajo en el área de TI de una empresa y debo hacer una desinstalación masiva de una aplicación, la idea es realizar la desinstalación por medio de CMD usando el comando wmic, realice la prueba manual en mi equipo y hay un paso en el cual pide confirmación para realizar la desinstalación. me gustaria sabher como puedo plantear que si pregunta xxxxx responda yes o Y.
@echo
wmic product where name=»kiteworks» call uninstall %pregunta% %computername%\ROOT\CIMV2:Win32_Product.IdentifyingNumber=»{B1F828B4-30C5-4CC7-ACBD-B5F1869DA9EC}»,Name=»kiteworks»,Version=»1.8.8″)->Uninstall() (Y/N/?)?
exit
Hola Brayan,
La verdad es que solo he usado WMIC para tareas muy básicas, así que no se como se podría hacer lo que comentas. Supongo que el proceso dependerá del paquete que estés desinstalando.
Supongo que ya lo habrás mirado tu, pero lo único que se me ocurre para probar a primera vista es usar el parámetro: /INTERACTIVE:OFF
Basandome en la documentación oficial:
https://docs.microsoft.com/en-us/windows/desktop/wmisdk/wmic
Pero como te digo, no puedo darte una respuesta mejor, lo siento. A ver si alguien que nos visite se ha encontrado con este problema anteriormente y puede darnos alguna pista.
Saludos
muy bueno tu guia he aprndido mucho pero tengo una duda quiero crear un programa que elimine una carpeta con un nombre especicifo (virus) para ser precisos 2 pero ese no es el problema el problema es que no me funsiona es este:
@echo off
cd «d:\»
del /S /Q kfgfytjvbcfgusprxsbht
del /S /Q jsdsadsdbsgdslkdgs
pause
tambien no me cambia de disco, no se que hacer soy nuevo en esto aunque conosco de otros lenguages de programación (c++) que me ayudan a entender todo lo que explicaste muy bien.
Hola Pedro,
No veo ningun problema con el programa que pones, unicamente, para cambiar de unidad, en algunos windows es suficiente con escribir el nombre de la unidad, sin comando delante. Por ejemplo:
Comprueba que la unidad con letra D exista, si no el programa fallará.
Saludos
Hola, una pregunta
Quiero crear un bat que entre en esta página:
http://www.gobiernodecanarias.org/istac/jaxi-istac/tabla.do?uripx=urn:uuid:31730d2f-86a8-4f0b-a706-5e5942702b7b
Seleccione los «turismos»
Seleccione la casilla de todas las opciones del segundo (aunque me conformo con que coja una)
Seleccione 2917 (p)
y luego le de al botón de «consultar seleccion»
He estado probando cosas, pero no consigo que seleccione las casillas, el código que tengo es este:
Hola Rayco,
Por desgracia lo que quieres hacer no se puede hacer así. Es mucho más complejo de lo que parece…
En el código de ejemplo que pones estás mezclando lenguajes, en concreto parece javascript. No puedes hacer eso con batch lamentablemente. Mi recomendación es que continúes aprendiendo con el lenguaje Python. Todo lo que sabes de batch te ayudará a comprender la sintaxis y con Python podrás hacer muchas más cosas de forma bastante sencilla.
Saludos
Hola tengo un poblema con mi archivo.bat, estoy «‘creando» un juego[nada profecional] el problema
es que se me sale del progama al llegar un punto.
Este es el progama :
Gracias por antemano
PD:Tiene otros fallos pero lo unico poblema que me jode [disculpa la palabra] es que en un momento se me sale el achivo
Hola Agustin.
En primer lugar ernhorabuena por el juego, te falta todavía para completarlo pero tiene muy buena pinta.
En primer lugar, para evitar confusiones, evita en los nombres de las etiquetas poner espacios. Por ejemplo en «goto te quedas» es mejor usar «quedas» o «tequedas» (recuerda cambiar también la etiqueta (:tequedas).
En segundo lugar, cuando haces una pregunta, intenta que el jugador responda con número siempre que sea posible como haces en la línea 51. Así es mucho más sencillo, y es menos probable que el que juega comenta un error al escribir una palabra mal.
El motivo por el que se te cierra es por que en este if:
La comparación es muy compleja, por lo que te comentaba antes. Deberias usar comillas y quitar los espacios en la etiqueta así:
O mucho mejor: Preguntar con números como hacías en la pregunta anterior:
Al hacer ese if tan complejo, según lo que escribas o da error la comparación o se va por el else a «:salis1», que a su vez te lleva a «salis» y si te fijas aquí hay un error: Has escrito pLause en lugar de pause. Por lo tanto se cierra.
Espero que te sirve. Si no entiendes alguna cosa, pregunta más. Y si finalmente consigues completar el juego, compártelo aquí para que podamos jugarlo!!
Saludos
Hola, no se si puedan ayudarme, tengo el siguiente bat
Pero lo que quiero es que en el archivo a.log me guarde el resultado de la eliminación (principalmente si hay error)
Agradezco su ayuda
Hola Sonia,
Lo más sencillo es que se guarde en a.log los errores que ocurran, para ello basta con redirigir la salida de errores siempre al archivo a.log.
Como ya sabes para redirigir la salida completa de un comando a un archivo se puede hacer con el símbolo «>>». Si quieres que solo guarde los errores, se puede hacer con «2>». Por ejemplo en tu programa quedaría así:
Esto guardaría un registro con todos los errores que han ocurrido. Si quieres que solo se guarde el texto «ha ocurrido un error» podría hacerse que guarde todos los errores en un archivo temporal, por ejemplo: temp.log y luego que compruebe si el archivo está vacío o no para saber si hubo algún error.
Saludos
Hola buen tutorial
mi consulta es : quiero que el sistema operativo se apague con una hora y fecha que yo especifique
Hola Anita,
Puedes hacer con el comando shutdown. Ejecutando help shutdown, puedes ver todas las opciones que hay (no son pocas).
En el propio tutorial tienes ejemplos:
Saludos
buen tutorial gracias
tengo una duda es que cuando ejecuto este comando:
shutdown -I -t 5 -c virus detectado
me aparece un cuadro que dice dialogo de apagado remoto
tengo otra duda y es que en mi pc se abre el cmd y se cierra sola dura 1 segundo abierto, y las veces que he podido verlo bien sin que se cierre aparece sin nada y con el titulo cmd.exe que batch estara causand esto
No pasa nada, solamente que el programa termina.
Si quieres usa el comando «pause» después de tu comando, este agrega una linea de texto para que cuando toques alguna tecla se cierre.
Hola, quizás ya sea muy tarde porque el post ya lleva su tiempo, pero tengo una pregunta.
Yo vengo de programar Java y quiero sabe ¿Cómo hago para finalizar un if y seguir con otro procedimiento?
Digamos lo siguiente:
Realmente no vi otra forma de hacerlo, pero si existe, me gustaría saber de esta para ahorrarme un poco más de líneas de código.
Saludos!
Hola Daniel,
Perdona la tardanza, la manera en que lo haces es correcta. Puedes ahorrarte unas cuantas lineas de código utilizando bloques como harías en java, pero en este caso usando simples paréntesis (es un poco confuso). Por ejemplo:
Espero que sea de ayuda 😉
Un saludo
Muy buen post 4m1g0!
Felicitaciones, gente como tú
Hace grande nuestra comunidad.
Yo me intereso por la programación
Pero nunca lo eh hecho en bash
Hay alguna distribución de Linux
Qué recomiendes para empezar??
Hola Alex,
Perdona la tardanza en contestar, es posible que ya te hayas aventurado con algo tu mismo, si es así enhorabuena.
Una de las distribuciones de Linux más extendida es Ubuntu (https://www.ubuntu.com/). Que sea la más conocida hace que tengas un montón de información y gente usándola y por lo tanto será mas fácil encontrar información.
Personalmente Ubuntu me gusta, pero soy usuario de Fedora por que es la distribución que más se ajusta a mi modo de trabajar y es mi favorita. Lo bueno de Linux es que tienes mucho donde elegir y las posibilidades son enormes.
La decisión inicial no es tan importante, lo mejor es decidirse y empezar a usarlo. Hay que acostumbrarse, por que es muy distinto a windows y resulta complicado adaptarse si llevas muchos años acostumbrado a hacer las cosas de la misma manera, pero una vez te adaptas, no lo cambias por nada.
Saludos
Hola amigo, cuanto tiempo.. Veo que tienes todo esto un poco abandonado jeje..
Mi pregunta es la siguiente, hay alguna manera de impedir cerrar el programa de forma voluntaria? o por lo menos hacer que si lo cierra se abra otro programa, como una especie de «»Virus»», como para achantar a alguien jaja
Saludos
Hola,
La verdad es que si, no me llega el tiempo para responder. Pero por lo menos veo que el tutorial sigue ayudando a bastante gente y eso es bueno.
Técnicamente es bastante complicado hacer que un programa no pueda cerrarse, el sistema está preparado para que el usuario pueda tomar la decisión de cerrar cualquier cosa.
Lo que si podemos hacer es hacerlo complicado, ya sea corriendo en un nivel de seguridad mayor (de forma que se requieran permisos de administrador para cerrarlo) o bien monitorizando el estado del proceso y reiniciandolo si el usuario lo cierra.
Ambas cosas se podrían hacer con batch, pero es demasiado engorroso como para que no merezca la pena… De ser necesario hacer algo como eso, es mejor ya pasarse a otros lenguajes de programación como python o C++ por ejemplo. (este ultimo expecialmente si quieres generar un ejecutable nativo).
Saludos
hola, tengo una duda sobre el comando msg.
tu pones:
msg * hola mundo
pero en el titulo del msg dice mensaje desde (nombre de usuario que utilizo en ese momento)
como hago para cambiar el titulo de la msgbox?
+ parte avanzada crack. lo as echo bien
vive la vida
Hola Alejandro,
El comando msg no permite asiugnar un titulo, por que está pensado para lanzar mensajes a otros usuarios que estén usando el equipo en remoto…
De manera simple con batch no hay forma de lanzar un popup con titulo como quieres, requiere usar o bien otro lenguaje de scripting, o llamar a un programa descargado previamente.
Saludos
Hola no se si todavia este avierto este hilo pero tengo una pregunta necesito que el mismo .bat ejecutado desde varias maquinas conectadas en red local editen el mismo .txt colocado en mi pc en una carpeta compartida. Mi maquina tiene contraseña porque si no no se puede acceder a esta carpeta compartida desde las otras maquinas
, resulta que estoy haciendo un juego MUD, ya sabes , de aquellos Juegos de rol MS-DOS, y me preguntaba si existía alguna manera de lograr que el sistema no reconozca entre minúsculas y mayúsculas, para que cuando alguien escriba por ejemplo: Avanzar, no tenga que escribirlo perfecto, que pueda escribir, AVANZAR, avanzar o incluso aVAnzAr, es un problema que me da ya que a muchos le es cómodo sin la necesidad de activar mayúscula o minúscula
PD: Excelente tutorial, te mereces una gran maestría
Hola Tomas,
Para hacer una comparación de texto que no sea sensible a mayusculas y minúsculas puedes añadir el parámetro /I al if:
De todos modos, si estás interesado en hacer cosas un poco más avanzadas como lo que intentas, te recomiendo probar con el lenguaje Python. Es muy simple y todo lo que has aprendido te servirá como punto de partida. Python ya es un lenguaje muy serio que se utiliza mucho a nivel profesional.
Saludos
Saludos. Tengo una duda, cómo podría ver que archivos están en la ubicación actual, sin salirme del cmd?
Hola,
Para listar los archivos puedes escribir dir en windows (en Linux es ls) para cambiar de ubicación se puede hacer con cd C:\ruta\…
Saludos!
sahsjnh
jdhyye ?
Sasyuyu
Existirá otro comando para imprimir archivos a una impresora USB o de red prove con print pero me dice de que algo no se pudo ejecutar
Desde batch no es posible llamar directamente a una impresora. Lo que si puedes hacer es ejecutar un programa y que este se encargue de imprimir… pero aún así alguien tiene que seleccionar entre las diferentes impresoras y las opciones de impresión. No es algo nada sencillo.
Saludos
A y una cosa existirá una forma de cambiar las letra y el tamaño cuando lo guarda con el comando
Echo Hola > Archivo.txt
Hola,
Un fichero txt, es texto plano, sin formato. Podrías crear otro tipo de fichero como .rtf
En estos ficheros puedes definir el formato en el propio documento. En la propia página de la wikipedia tienes algun ejemplo:
https://es.wikipedia.org/wiki/Rich_Text_Format
Hola Amigo y demas compañeros de TodoHacker necesito la sintaxis exacta con el comando que sea. para copiar archivos y carpetas de mi PC hacia otra PC y viceversa mediante el CMD.
muchas gracias
Hola jzaldivarleyva,
La forma más sencilla de pasar archivos de un ordenador a otro es utilizando un pen drive, pero supongo que te referías a pasarlo por red.
Esto es algo que depende de muchos factores, en Linux como siempre es mucho más sencillo, pero Windows está varios pasos por detrás.
La forma mas sencilla es que ambos ordenadores se encuentren en la misma red de Windows, el mismo dominio, o el mismo Workgroup y que tengan una carpeta compartida públicamente… Si esto es así podrás copiar archivos a la carpeta compartida del otro ordenador de la siguiente manera:
xcopy /s/e c:\carpeta\origen \\ORDENADOR2\carpetaCompartida
Esto copiará toda la carpeta «origen» de forma recursiva a la carpeta compartida del ordenador 2.
Si los ordenadores no están en la misma red de la forma indicada anteriormente, la cosa se complica mucho.
Saludos
Hermano primero que todo muchas gracias por tu pronta respuesta y el tiempo que dedicas a este post.Estoy seguro que todos aqui estamos agradecidos porque exista un sitio como este porque si de aprender batch se trata hay que contar con esto. Y Si,a eso me refería
a dos equipos por red. Con tu respuesta acabo de despejar varias dudas e hipotesis del tema, poniéndole fin de una vez. Muchas gracias y que Dios te bendiga.
Hola existe un comando que pueda identificar archivo.
Algo como:
Si el archivo texto.txt existe en la carpeta documento entonces hace esto y sonó hace este otro.
Existirá algo parecido como si fuera un if pero envés de que diga si o no de un comando quiero que sea de un archivo.
Saludos…
Hola!
Si existe, y es muy sencillo. Simplemente hay que añadir la palabra exists y especificar la ruta relativa o absoluta. Por ejemplo:
if exists C:\archivo.txt echo EXISTE!
else echo NO EXISTE!
Saludos
pero si no sé como se llama el archivo? si quiero saber si hay algún archivo?
Saludos.
Muchas gracias
hola, quiza me puedas ayudar necesito progrmar un batch que cuando se ejecute programe una tarea en el programador de tareas de windows (valga la redundancia) para 45 dias mas donde muestre un msj con ciertas variables, ademas el nombre de la tarea no puede ser fijo ya que se crearan mas de una alerta diaria, cuando lo pense me imagina que seria mucho mas sencillo pero al parecer el comando no acepta variables como por ejemplo %date% en sus instrucciones, te dejo el codigo que estoy utilizando para crear la tarea.
schtasks /create /TN ????? /TR «cmd /c ‘msg * hacer seguimiento a remesa cliente fecha %date%'» /SC ONCE /ST 10:00 /sd «%date%+45dias» /F
Hola 4m1g0!Estoy tratando de crear un programa para borrar archivos, la idea es que me pida la unidad(como variable set/p un = Unidad), luego el nombre del archivo(como variable set/p arch = Archivo) y después elimine el archivo de la variable set/p = Archivo mediante el comando rmdir. Me funciona hasta el momento de borrar el archivo, yo lo tengo puesto como rmdir «%arch% /s /q» pero me dice que la sintaxis no está bien, necesito tu ayuda!
Hola,
En batch lo que usas como variable se sustituye literalmente en el comando, así que es muy probable que si te dice que la sintaxis está mal es que sea la parte de la variable lo que da conflicto. Recuerda tambien que el comando RMDIR solo permite borrar carpetas no permite pasarle un directorio.
Esto por ejemplo funciona correctamente si le pasas la ruta de una carpeta:
Lo pongo entre comillas por si el nombre tuviese espacios, de esta manera funciona igualmente. Si lo copias, reescribe las comillas a mano, por que a veces se copia un carácter diferente.
Saludos
buenas tardes he visto el curso y me a ayudado mucho le doy las cracias
veo que tiene tiempo sin contestar sinceramente spero se encuetre bien
Muy buenas tardes.
Tengo una consulta, estoy realizando un script que va isntalar un programa mediante consola remota, el script funciona correctamente pero no puedo logar que me deje un log con el nombre de la máquina, les adjunto el ejemplo del Script.
@echo off
psexec @C:\Script\ListadoDePCs.txt -d -c -f \\ruta del script >>\\Maquina\log\»ACA QUIERO DEFINIR QUE UTILICE EL NOMBRE DE LA MAQUINA QUE TOMO DE @C:\Script\ListadoDePCs.txt» 2>&1
Buenas tardes,
Necesito un favor que tengo que generar un bat, que no tienen datos específicos dentro del archivo es decir son cambiantes todos los días yo estoy generando ya fijos no logro entender como realizar los bat sin datos fijos
ejemplo DCYYYYYYYYAAMMDE- RESULTADO DEBE SER ESTE 09CDAAMMDEYYYYYYYYYYYY
Buenas Tardes
esta muy genial tu tutorial me ayudarías en 2 cosas?
la primerra en sabes como llamar desde un .bat un proceso almacenado?
y la segunda, como quito el encabezado al momento que en que el bat suelta el resultado en otro archivo?
No se si esto sirva como broma o algo pero les comento que para poder poner un acceso directo y hacer que el ordenador se apague de manera inmediata, se usan los siguientes comandos:
shutdown -s -t 03 -c «El ordenador cerrara la sesion, guarde sus archivos»
shutdown -s ….sirve para programar el apagado.
-t ………….nos indica el tiempo dentro del cual se apaga en segundos.
-c…………..(opcional) introduce un comentario.
NOTA: en caso se ejecute y no se deseaba apagar, se debe ejecutar shutdown -a
para mayor info ejecuta en la MS-DOS shutdwon /?
Hola hace poco descargue un arcrivo bat de una pagina de lol https://www.leagueofgraphs.com pense que era una grabacion que sale un boton donde sale para grabar la jugada de algun jugador que este jugando en el momento pero me parecio raro la extencion del archivo bueno la cosa es que el google chrome me lo marco como un virus y el antivirus tambien. Mi duda es sera un archivo dañino para la pc? Gracias y disculpe si molesto.
Hola una pregunta existirá un comando que minimice toda las aplicaciones ejecutadas
o que solo minimice las aplicaciones que desee
Se que existe uno para cerrar ciertas aplicaciones pero existirá otra para minimizar
Hola, Quiero ejecutar un bat para cambiar la extension de unos archivos , pero están en carpetas distintas. Hay forma de que se pueda ejecutar en todas las carpetas en simultaneo?
Gracias de antemano.
Hay que ir poniendo la ruta de las carpetas donde quieras cambiar los archivos.
Yo tengo una pregunta parecida.
Se pueden cambiar la extension de los archivos de una carpeta y los de sus subcarpetas al mismo tiempo?
Este script, cambia las extenciones .txt a .jpg en un directorio, incluyendo los archivos ubicados dentro de los subdirectorios… utilizado por mi para obtener seguridad minima sobre mis archivos…
@echo off
for /f «tokens=*» %%_ in (‘dir /s /d /b *.txt’) do (call:renombra «%%_»)
goto:eof
:renombra
set «name=%~n1»
set «name=%name:~0,-1%»
ren «%~1» «%name%.jpg»
Buenas Tardes, antes que nada Muy buena Guia Am1g0!!,
quisiera saber si es posible lo siguiente,
agradezco mucho a los que me puedan dar una mano tamb
Lo que quiero hacer es poder abrir un .exe a traves de un .bat, pero necesito que «ejecute» la app «WinClient.exe» (detallado mas abajo) como OTRO USUARIO, es decir
Shift->Ejecutar como otro usuario,
Para evitar estar escribiendo el usuario y password cada ves que necesite utilizar la App.
@echo off
//Ejecutar COMO OTRO USUARIO
//USER: usurario
//Pass: contraseña
C:
cd \App\App Client
start WinClient.exe
exit
Desde ya muchisimas Gracias!!!
Hola, como hago para que si un directorio tiene algún archivo lo mueva a otro directorio, pero si no hay ninguno no haga nada?
Gracias.
Hola 4m1go, necesito tu ayuda he hecho un menu .bat que al seleccionar por ejemplo el numero 1 me abre una pagina web especifica. El problema es que cuando apreto 1 me las abre las 3 ya que he puesto 3 paginas de momento. Como hago para que me las abra de manera separada? Osea que si apreto 1 me abra la pagina 1, no todas jaja.
Aqui tienes el codigo:
@echo off
:menu
cls
color 02
echo —–
echo ———-
echo —————
echo ——————–
echo ————————- LISTA SETS DE IMAGENES
echo ——————————
echo ———————————–
echo —————————————-
echo ———————————————
echo ————————————————–
echo 1.-001
echo 2.-002
echo 3.-003
echo.
echo.
set /p ver=Que desea hacer?
if %ver%==1 goto 001
if %ver%==2 goto 002
if %ver%==3 goto 003
:001
start https://filefox.cc/pizgdykdhiky
:002
start https://dfiles.eu/files/9npwr1exw
:003
start https://dfiles.eu/files/1l262mxrd
pause >nul
goto menu
Creo que deberias poner un exit al final de cada bloque de goto.
goto menu debe ir tipeado debajo de cada direccion web:
:001
start https://filefox.cc/pizgdykdhiky
goto menu
:002
start https://dfiles.eu/files/9npwr1exw
goto menu
:003
start https://dfiles.eu/files/1l262mxrd
goto menu
Buenas, tengo una duda. Quiero crear un programa que ejecute una combinacion de letras (sin necesidad de pulsarlas), unicamente que me ejecute esa accion. Por ejemplo un programa que ejecute CTRL + ALT + 5.
¿Seria posible realizar esa operacion?
Es que no veo informacion relacionada con este caso.
Muchas gracias por tu ayuda y muy buena informacion
Con la función Sendkeys en vbscript es posible… copia y pega estas lineas en un block de notas, luego guarda el archivo con la extension .vbs y ejecutalo, veras un pequeño ejemplo, de lo que se puede hacer usando sendkeys… pero debo advertirte algo, mientras se implementa el script debes mantener el foco de la aplicasion en ella asi evitaras se implemente en otro lugar, ya el codigo lo prevee con una instruccion incrustada en el, pero mientras lo ejecutes no abras ninguna ventana o aplicasion.
ap=inputbox(«Indica tus apellidos por favor»,»:Hecho por jose romero»)
n=inputbox(«Indica tus nombres por favor amigo (a), » & ap,»:Hecho por jose romero»)
ed=inputbox(«Indica tu edad en números por favor amigo (a), » & n & » » & ap,»:Hecho por jose romero»)
msgbox «Voy a escribir tu nombre amigo ‘» & n & » ‘ y tambien tus apellidos que me dijiste son ‘» & ap & «‘ ; ademas de tu edad ‘» & ed & «‘ , en un archivo de texto que se escribira automàticamente… Sòlo presiona aceptar y mira..»,,»Hey, » & n & » » & ap
Set MiShell = Wscript.CreateObject(«WScript.Shell»)
Set MiPrograma = MiShell.Exec(«notepad»)
Wscript.Sleep 3000 ‘Espero 3 segundos
MiShell.AppActivate Miprograma.ProcessID ‘Llevo el foco a la aplicación, para prevenir se implemente el codigo fuera de ella
Wscript.Sleep 100 ‘Espero un tiempo para simular la pulsación del teclado
Mishell.SendKeys «T»
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys «u »
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys » t»
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys «e »
Wscript.Sleep 500 ‘
Mishell.SendKeys » ll»
Wscript.Sleep 500 ‘
Mishell.SendKeys «a»
Wscript.Sleep 500 ‘
Mishell.SendKeys «m»
Wscript.Sleep 500 ‘
Mishell.SendKeys «as »
Wscript.Sleep 500 ‘
Mishell.SendKeys n & » »
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys ap
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys » y»
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys » tienes »
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys ed
Wscript.Sleep 500 ‘ Escribo lo q quiero
aa=2016-ed
Mishell.SendKeys » años»
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys «, naciste »
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys «en el »
Wscript.Sleep 500 ‘ Escribo lo q quiero
Mishell.SendKeys «año de » & aa
Wscript.Sleep 500 ‘ Escribo lo q quiero
Alguien me podria recomendar algun tutorial batch avanzado y tan completo como sea posible. Por que hay muchas cosas que yo no se y quiero mejorarme.
Por favor
Hola, x favor le suplico un poquito de su tiempo… Instalo Programas y les agrego mas recursos. Las carpetas con esos recursos estan dentro de 2 archivo.exe creado con winrar y se ejecuta con este comando… Path=%ProgramFiles%\RocketDock\Icons para win32bit… y Path=%programfiles(x86)%\RocketDock\Icons para 64bits… como seria un bat que me identifique el OS sea 64-32 bit y de acuerdo a ello me agregue esta carpeta de recursos para no tener que cargar varios instaladores… disculpe si no me explique bien… muchisimas gracias x su tiempo y dedicacion, al apoyarnos con sus ricos conocimientos.
@echo off
if exist %windir%\syswow64 (goto X64) else (goto X86)
:X64
%programfiles(x86)%\RocketDock\Icons
exit /B 1
:X86
%ProgramFiles%\RocketDock\Icons
exit /B 1
Hola a todos
primero que todo esta muy bueno el post, feliceidades a @4m1g0.
he estado viendo diferentes tutoriales pues estoy creando un *.bat(en WIN) para hacer compresiones, renombrar, copiar mover y renombrar, pero, no he logrado dar con una instruccion especifa. Trato hacer que mi *.bat guarde y almacene la ruta donde el se encuentra, pues asi puedo dar la instruccion a otros ejecutables para que operen sobre los archivos, para no tener que estar cambiando la ruta cada vez que mueva el bat de un lado a otro. ¿Saben de algo que me podría ayudar?. se los agradeseria
Hola estoy haciendo un fronted de juegos, pero algunos de ellos son exe. Y puedo arrancar estos exes lo hago con un bat ya que el exe no lo reconoce este fronted.Si es con unsa direccion fija no tengo problema uso esto
cd «I:\EmulationStation\emulationstation\roms\locomalito\Gaurodan\»
I:
Gaurodan.exe
Me funciona el problema es que no se como hacerlo desde una ubicacción distinta para que arranque el ex por ejemplo, quisiera iniciar desde la carpeta
locomalito y el exe lo tendria así locomalito\Gaurodan\Gaurodan.exe.
Entonces como podría llamar desde esa ubicación, asi´poder usar todo de forma portable en un usb.Gracias
Jajajaja me respondo yo mismo, recordé una cosa de python y me ha funcionado.Mira que llevo todo el día buscando
cd «*\Gaurodan\»
Gaurodan.exe
ahora me gustaría que no se viese la ventana de cmd mientras arranca el exe sin usar un archivo vbs
si me sirve si , en el caso de hacerlo mediante click ratón ,pero cuando el programa lo llama dice que windows no sabe donde esta el archivo
Compila los .bat con Bat To Exe Converter, usando la opcion de invisibilidad que te da ese compilador, de esa forma usas un solo archivo y logras ambas cosas, ejecucion del exe de forma invisible…
Al final no explicaste shutdown /m.
Como funciona?
Hola amigos, disculpen los moleste… necesito por favor me ayuden a crear un archivo .bat, que cree un archivo de texto, con el nombre de usuario de quien lo ejecute, mas el nombre del equipo desde donde se ejecuta y luego los verifique, para compararlos con datos que yo le aporte, para luego ejecutar o no una linea de codigos. Me explico quiero que el .bat solo se ejecute en un equipo con un usuario especifico que yo le señale, si falla la verificasion del nombre de usuario o el nombre del equipo, cualquiera de los dos datos, simplemente se salga y no ejecute nada, gracias de antemano… quien me ayude a crear este .bat, le regalare una licencia PREMIUM de Malwarebytes Antimalware… este es mi email, [ELIMINADO] pueden escribirme alli…
Okey… por si a alguien le es util, logre hacer lo que queria con un vbscript File… en el que defino Nombre de Equipo y Nombre de Usuario, si el nombre de Equipo es correcto redirije a la verificacion de Usuario, si no es correcto sale de la implementacion del script… si el Usuario no es el correcto, ni modo sale de la implementacion y no se ejecuta el archivo, aca se los dejo corre con credenciales de Admin…
On Error Resume next
If WScript.Arguments.Named.Exists(«elevated») = False Then
‘Launch the script again as administrator
CreateObject(«Shell.Application»).ShellExecute «wscript.exe», «»»» & WScript.ScriptFullName & «»» /elevated», «», «runas», 1
WScript.Quit
Else
‘Change the working directory from the system32 folder back to the script’s folder.
Set oShell = CreateObject(«WScript.Shell»)
oShell.CurrentDirectory = CreateObject(«Scripting.FileSystemObject»).GetParentFolderName(WScript.ScriptFullName)
Dim obj
set obj = CreateObject(«Wscript.shell»)
If obj.ComputerName = «XXX-PC» Then
If obj.userName = «xxx» Then
Set objShell = CreateObject(«Wscript.Shell»)
objShell.Run(«XXXX.exe»),,True
Else
wscript.echo «No estas Autorizado para usar este Software»
‘Si el usuario no es el correcto termina y sale…
End if
Else
wscript.echo «No estas Autorizado para usar este Software»
‘Si el Equipo no es el correcto termina y sale…
End if
End if
hola deseo hacer un bat donde apague la pc pero antes de se apague detenga un servicio (mysql)
@echo off
«%SYSTEMROOT%\system32\net.exe» stop «mysql»
shutdown -s -t 60
REM Si deseas apagarla antes, cambia 60 por menos segundos
Haber tengo un pequeño problema que para lo que me hace no es nada grave pero me molesta tengo un bat que borra todos mis partidas guardadas pero hace una copia de seguridad antes (para los fines de semana que salgo de «trabajar») pero cuando lo inicio es como si no activará el echo off haciendo esto que se vea feo alguna idea de por qué pueda ser?
muy buen tutorial y espero me puedes ayudar
quiero crear un .bat que ejecute una serie de comandos hacia mysql ejemplo
que ejecute mysql -u root – p y use database
sabras que intruccion usar para hacer que ejecute esos comandos entre otros mas.?
saludos
Hola a todos quisiera que me ayudaran en lo siguiente
quisiera aser un programa que me buesque dentro de los prosesos del sistema uno espesifico y que lo cierre se cerrarlo con:
taskkill /firefox.exe /F
pense en listarlos todos, guardarlos en un txt y loego recorrer el txt y si esta, cerrarlo como explique arriba.
pero quisiera saber si ay otra manera.
saludos y gracias de antemano
Hola buenas muy interesante este mundo, no me manejo mucho pero quiero tratar de aprender ya que necesito saber si se puede a trabes de esto si puedo lograr que una programa se ejecute en la segunda pantalla que tengo. Saludos y si puedes orientarme seria genial
Buenas tardes, estoy armando una calculadora en batch, el problema es que quiero comprobar que el usuario solo ingrese números y no letras, gracias
Hola buen día..
Necesito crear un .bat que detecte cuando el proceso Scanner.exe se detenga o no muestre consumo de CPU, y cuando esto ocurra el proceso Scanner.exe se reanude su ejecución.
ya intente de varias formas pero no puedo encontrar esta solución para que un archivo .bat detecte cuando el proceso este detenido o haya generado un error.
ojala pudieran ayudarme.
Hola buen tutorial gracias. Quería saber como puedo leer un arhivo .text el valor de un entero para luego asignarlo a una variable en un .bat gracias
Ya lo logre por si alguien me iba a ayudar
Como puedo hacer para que un resultado que sale en la pantalla, me lo envie a un .txt en la raiz de la unidad C?
Tengo un problema con un molesto virus de USB
Habrá algún comando cmd que lo pueda eliminar, lo que hace este virus convierte todas mis carpetas del USB en aplicación y los otros archivos me lo hace igual y los mueve a otra carpeta.
Ya intente con algunos comandos pero no funciona
Lo mueve a una carpeta llamado Nvidia y genera otro que tiene como nombre $Dat.0
@echo off
SETLOCAL DisableDelayedExpansion
FOR /F «usebackq delims=» %%a in (`»findstr /n ^^ t.txt»`) do (
set «var=%%a»
SETLOCAL EnableDelayedExpansion
set «var=!var:*:=!»
Echo !var!
echo.
)
set valTextContador= !var!
Echo %valTextContador%
echo.
set valor= 1
echo.
Echo %valor%
set/a suma= %valTextContador% + %valor%
echo.
echo %valTextContador% + %valor% = %suma%
echo.
echo borrar archivo T.txt y agregar el nuevo valor
del t.txt
echo.
echo %suma% > t.txt
echo.
If %suma% EQU 1 (goto 001) else (goto 002)
:001
start C:\Users\LEON\Desktop\windows_bat\texto1.txt
exit/B1
If %suma% EQU 2 (goto 002) else (goto 003)
:002
start C:\Users\LEON\Desktop\windows_bat\texto2.txt
exit/B1
If %suma% EQU 3 (goto 003) else (goto salir)
:003
start C:\Users\LEON\Desktop\windows_bat\texto3.txt
exit/B1
If %suma% EQU 4 goto salir
:salir
exit
Mi problema es el siguiente, en el if numero 2 se me encicla y no pasa al if numero 3
Hola no entiendo mucho pero aquí te mando lo que acabo de hacer, lo que trato de hacer es activar la red hospedada trato de que si me da error en la activación salga desactivado y si se completa salga activado en una ventana.
@echo off
netsh wlan set hostednetwork mode=allow ssid=SKYNET key=terminator
set estado= netsh wlan start hostednetwork
set skynet= if %estado%==se inició la red hospedada goto Activado else Desactivado
msg * Estado de SKYNET : %skynet%
exit
Hola, no entiendo por que mi codigo no funciona si pudieras revisarlo a ver cual es error 🙂
La funcion de este codigo es poner un mensaje protegido con una contraseña
codigo:
@echo off
set tries=3
set pasword=1234
color 0a
:str
set /p contraseña=Writte the pasword:
echo.
echo.
echo Intento %tries%
if %pasword%==%contraseña% (goto corretc) else goto intentos
:intentos
if tries==0 (goto fail) else set /a %tries%=%tries%-1
goto str
:fail
start
:correct
echo contraseña correcta.
pause
pause>nul
exit
AQUI PONES CORRETC
if %pasword%==%contraseña% (goto corretc) else goto intentos
Y AQUI, :correct, PONES CORRECT.
( Has cambiado las letras)
Hola Amigo, necesito ejecutar un programa de forma desatendida en el arranque de Windows, el problema que tengo es que este programa pide usuario y contraseña, el programa recuerda el último usuario con el que se accedió y al volverlo a ejecutar muestra dicho usuario, pero aunque no tenga contraseña pide pulsar OK, o escribir la contraseña y pulsar enter.
¿Existe una especie de pila donde guardar la contraseña y una vez ejecutado el programa coja la contraseña de esa pila?
¿Cómo lo podría solucionar?
Gracias.
Hola, cómo podría automatizar las configuraciones a través de Bach. Es decir, cuando se da click derecho te sale la parte de un montón de opciones, como puedo acceder a cada opción, y escalar las siguientes opciones.
Hola como hago para especificar una tecla para que cierre la ventana?
Salu2
Por favor ayúdenme con 3 ejercicios en las cuales me piden:
1.- hacer un procedimiento bat que pida números y los vaya sumando hasta que se introduzca un 0. En ese momento mostrará el resultado de la suma y terminara.
2.- modifique el procedimiento anterior para que acumule el producto de los números que se vayan pidiendo.
3.- utilizar for para mostrar la tabla de multiplicar de un número que se pasa como parámetro
Hola
Me podrías decir si hay alguna manera de encriptar un file batch, desde el block de notas o Notepad ++?
Porque si quiero hacer un programa .bat que para iniciar pida una contraseña, es logico que si alguien hace click derecho en el icono del programa y le da a [Editar], puede ver las lineas de codigo i saber la contraseña.
Me refiero a halgo simple como:
…
…
…
set/p %contraseña%=»Inserte la contraseña: »
if %contraseña%== CALL :inicio else CALL :2 tentativo
…
…
…
[Uso Windows 7]
hola muchos saludos tengo el siguiente comando que se supóne me ejecuta un vídeo y abre y todo bien hasta cierto punto donde llega y me dice que no pudo descargar mas datos y el programa va a cerrarse , osea me descarga solo la mitad del vídeo , si este por ejemplo dura 30 minutos solo me descarga 15 y se cierra si puedes darme ideas de como solucionarlo en lo que tengas tiempo disponible
@echo off
setlocal enabledelayedexpansion
:start
set LOL_PATH=»»
if exist «%APPDATA%\LoG_lolinstallpath.txt» (
set /p LOL_PATH0= «%APPDATA%\LoG_lolinstallpath.txt»
)
goto start
:exit
como lo programo para que cuando lo descargen se inicie y cuando la prendas tamvien
Hola, como podria hacer un script en Windows que comprobara si hay una unidad mapeada y si no lo esta que lo mapee? GRACIAS
Hola, muy buena información, muchas gracias por compartirla.
He realizado un programa que abre archivos sb y sb2 y estoy buscando hacer un batch (Windows 10) que, una vez finalizada la instalación, asocie ese tipo de archivo al programa que yo hice (.exe) para que los usuarios no tengan que ir a configuración de abrir con…
Me podrías dar una idea de cómo resolverlo?
Buenas tardes me gustaria abrir dispositivos e impresoras con un .bat me podrian ayudar gracias
HOLA QUE TAL, QUERIA SABER COMO PUEDO VERIFICAR SI HAY ARCHIVOS POR EJEMPLO MP4 EN EL DIRECTORIO C:\VIDEOS
Y SI NO HAY ARCHIVOS MP4 EN ESE DIRECTORIO QUE ME MUESTRE UN MENSAJE, Y SI LOS HAY QUE LOS MUEVA A C:\VIDEOS2… POR EJEMPLO. si me supieran decir me alegran el dia . mucha gracias. buenas tarderdes
Respecto a lo de verificar los archivos mp4 el comando a usar seria este:
dir /b /s *.mp4
eso mostraría todos los mp4 del directorio actual, el cual si quieres que sea el escritorio pues…
cd/
cd Users\%username%\Desktop
dir /b/s *.mp4
y para mover todos esos archivos creo que habría que poner
move *.mp4 C:\VIDEOS2
La verdad es que no se demasiado de esto, pero si esto te ayuda, me alegro
Hola, cordial saludo, como hago para ingresar la contraseña que me pide una aplicación para abrirla.
@echo off
start «Base1» «c:\pos-fast\DBposfast.mdb» /compact
en este menú la opción 2 de crear archivos me crea los archivos pero dentro de esos archivos no me muestra e resultado de los números aleatorios que hay mal en el codigo??
@echo off
cls
setlocal enabledelayedexpansion
echo ——————————————————-
echo MENU
echo ——————————————————-
:menu
echo ________________________________________________________________
echo 1. copiar contenido d euna carpeta a otra.
echo 2. crear ficheros con numeros aleatorios.
echo 3. ocultar ficheros de una carpeta.
echo 4. Salir
set /p opcion=»Introduzca la opcion deseada: »
if %opcion% == 1 (goto :copiar)
if %opcion% == 2 (goto :crear)
if %opcion% == 3 (goto :ocultar)
if %opcion% == 4 (goto :salir)
if %opcion% LSS 1 (echo Esta opcion no esta disponible, vuelva a intentarlo
goto :menu)
if %opcion% GTR 4 (echo Esta opcion no esta disponible, vuelva a intentarlo
goto :menu)
:copiar
set /p ruta=»Introduzca la ruta origen: »
xcopy /E %ruta% C:\IMSO\backup
goto :menu
:crear
set /p fichero=»Introduzca cuantos ficheros desea crear: »
set mm=%time:~3,2%
for /L %%x in (1 1 10) do (
set /a resultado=»(!RAMDOM!*32768/32768)+0″
for /L %%a in (1 1 %fichero%)do (
echo !resultado! >> fich%%a%mm%.txt)
)
goto :menu
:ocultar
set /p oculto=»que tipo de archivos desea ocultar: »
set /p carpeta=»en que carpeta se encuentra el archivo: »
attrib +H +S \%carpeta%\%oculto%
goto :menu
:salir
cls
echo Espero verle pronto por aqui. Hasta pronto!
hola como puedo hacer un programa bat que solicite el nombre a 10 personas, en cuanto sea 10 debera mandar un mensaje que diga felicidades terminado
Hola amigos, me podrían sacar una duda, existen comandos como .BATCH para android. y que se pueda realizar y ejecutar en blog de notas, de android. Les agradecere mucho una respuesta, dejó mi mail. ****** Gracias.
Hola, gracias por tu buen post, me animé a realizar por .bat que copie un archivo y me lo replique cambiando solo el nombre, lo realicé de esta manera pero no encuentra el archivo a pesar de que está bien la ruta, @4m1g0 no se si me puede aclarar mi error para solucionar el tema
————————————————————————————-
@echo off
echo ***** Crear varios archivos *******
set cantidad= 10
set nombreDestino=PDD001D
set ruta=C:\ICBS\Insumos\Carga De Archivos\Pagos\
set extension=.txt
set archivoOrigen=C:\ICBS\Insumos\Carga De Archivos\PDD001D.TXT
echo ** Archivo origen:
echo %archivoOrigen%
echo ** Ruta destino
echo %ruta%
echo ** Nombre Archivo destino
echo %nombreDestino%
pause
@echo off
for /L %%n in (1,1,%cantidad%) do Copy %archivoOrigen% %ruta%%nombreDestino%%%n%extension%
pause
——————————————————————————–
pero arroja mensaje «El sistema no puede encontrar el archivo especificado.»
Gracias
Hola.
Necesito ayuda para hacer un .bat en el que esté abra una aplicación por medio de red, por ejemplo: start\\10.3.30.170\voie\actuel\Startlon.exe, pero solo veo que se ejecuta en la misma máquina en la que está el .bat y no abre la aplicación de la otra máquina.
Espero que me haya dado entender.
Gracias, y espero y me puedan ayudar.
AYUDAAAAAAAAA!!!!
Hacer un programa que pida al usuario su salario, posteriormente se le indica que le aumentaran el sueldo mensualmente 30% por un año , mostrar el aumento mensual al usuario y al final del año cuánto gana al mes?
Hola buenass. Ahora mismo estoy haciendo un programa en un pincho USB para que extraiga información del equipo (ejecutando systeminfo, getmac y demás). Cuando accedo al USB lo tengo todo oculto menos un .bat que pide una contraseña para acceder a esos archivos o extraer info. El problema es que, para mayor seguridad, quiero que esa clave se encuentre en un archivo.txt (oculto, como no) y que lo tome como una variable, en plan:
======================================
set acum=0 (nº de intentos para meter contraseña)
set clave=<Passwors.txt
set /p key= Inserte la contraseña
If %key%==%clave% goto pass (que sería el menu, por asi decirlo)
cls
echo Contraseña incorrecta…
set /a acum=%acum%+1
…
===================================
Y sigue un poco mas. Lo que de verdad me interesa ahora es el tema del txt. Me haría falta una ayudita… Gracias de antemano
Hola. Que significa echo. sin mas?
echo. se utiliza para generar un salto de linea
Buenas, estoy armado un bat, y necesito verificar si se realizo una conexión para que se ejecuten una serie de comando, y de caso contrario dar una respuesta de fallido.
alguno tiene una idea de como poder hacer esto?
buenas tardes amigos quisiera saber si en bat puedo poner programas en pantalla completa o si puedo agregarle la función de una tecla en especifico a dicho programa
les agradecería mucho de su orientación
Buenas.
En un fichero .bat tengo el siguiente comando para abrir la ventana de Chrome para redactar un nuevo correo:
@ECHO OFF
START chrome.exe https://mail.google.com/mail/?view=cm
Agradecería me informen que código debo añadir a ese comando para que en la ventana que se abre de Chrome para redactar un nuevo correo me ponga en «Destinatarios» una dirección de correo predefinida.
hola, necesito programar un bat que me lea los archivos txt que se van metiendo en una carpeta, todos estos archivos tienen una cabecera donde normalmente en la linea 5 viene iniciada por un texto concreto:
«PT(clon)»
y a continuacion el dato que me interesa leer 5t6842458A:
PT(clon) «5t6842458A»
Hay quince posibles variantes y en funcion de estas variantes me gustaria cortar este archivo y pegarlo en otra carpeta, de manera que tendré 15 carpetas con los archivos filtrados.
Además me gustaría que se mantuviera un registro histórico y otro de errores.
Estoy empezando y no se si esto es posible con bat o si es necesario algo distinto como puede ser R. Tu que me recomendarias en caso de no poderse hacer con un bat?
Imagino que el bat se tendría que ejecutar desde las tareas programadas en Windows…
Muchas gracias por tu generosidad.
Hola 4migo me gustaria aprender mas quieres ser mi maestro? :3
Hola me han pedido desarrollar un batch que me compare archivos del tipo XML y TXT con la finalidad que me devuelva el número de las líneas que son diferentes.
ayuda
consulta,
es posible hacer que una pagina web que se ejecuta desde un bat, por ejemplo:
start http://groups.google.com.mx/grphp?hl=es&tab=ng
se ejecute solo una vez al día?