Hola, bueno soy nuevo en este tema de comandos y me gustaría saber si se puede crear un archivo .bat o algo que se le asimile para crear respuestas en cmd.
Por ejemplo
Al escribir net user "usuario" *
Cmd pregunta que contraseña es la que quiero, ¿no hay una forma de crear un archivo que responda de manera automática lo que CMD me pregunte?
Esto aplica para casos similares, de antemano muchas gracias
Puedes redirigir la salida del comando Echo, al Input de otro comando, pero esto no siempre funcionará en todos los casos.
Echo CONTRASEÑA|Net.exe user "usuario" *
Echo S|Choice.exe
Saludos
Mmm, me resulta interesante, solo que el comando se salta las opciones, cuando me pregunta la contraseña nueva inmediatamente se salta a la confirmación y me dice que el comando se completo exitosa mente, esto resuelve la mitad de mi problema, pero lo que quiero es que se responda solo, con una información previamente digitada, no se si escribí algo mal, de todas formas te agradecería me explicaras a mas detalle la sintaxis del comando con ejemplos y si no se pude hacer así, explicarme otra forma de hacer lo que quiero, por ahí escuche algo acerca de script pero como te dije soy nuevo en esto y agradecería mucho la ayuda .
Cita de: dan0727 en 5 Marzo 2014, 18:09 PMel comando se salta las opciones, cuando me pregunta la contraseña nueva inmediatamente se salta a la confirmación y me dice que el comando se completo exitosa mente
No es que '
se salte las opciones', es que se computan automáticamente los caracteres de la salida del comando 'Echo' al 'Input' del otro comando después de la 'Pipe',
ese es el
único modo de poder 'responder' al 'Input' de otro comando en Batch, se denomina rediceccionamiento de comando.
En resumen, es como si escribieses automáticamente y presionases la tecla 'Enter' para aceptar el 'Input'.
Cita de: dan0727 en 5 Marzo 2014, 18:09 PMpero lo que quiero es que se responda solo, con una información previamente digitada
No se exáctamente a que te refieres, ¿lo que quieres es establecer previamente el valor que quieres redirigir?, entonces puedes setearlo en una variable, por ejemplo, esto responderá automáticamente 'N' ('False') a una pregunta 'Booleana':
@Echo OFF
Set "Var=N"
Echo %Var%|Choice
Cita de: dan0727 en 5 Marzo 2014, 18:09 PMte agradecería me explicaras a mas detalle la sintaxis del comando con ejemplos
Aquí puedes aprender más acerca del redireccionamiento de comandos ~> http://ss64.com/nt/syntax-redirection.html
Cita de: dan0727 en 5 Marzo 2014, 18:09 PMsi no se pude hacer así, explicarme otra forma de hacer lo que quiero
No existe ninguna otra forma de 'responder', al menos usando puro y limitado Batch.
Lo más parecido que puedes hacer es usar un lenguaje de verdad, o aplicaciones 'CommandLine' de terceros (como por ejemplo
Nircmd.exe o
Sendkeys.exe) para enviar las pulsaciones del teclado que desees al foco de una instancia de la 'CMD.exe'.
· VBScript - SendKeys Method | TechNet (http://social.technet.microsoft.com/wiki/contents/articles/5169.vbscript-sendkeys-method.aspx) + VBScript - Sendkeys Method | SS64 (http://ss64.com/vb/sendkeys.html)
· NirCMD | NirSoft (http://www.nirsoft.net/utils/nircmd.html)
PD: Por lenguaje de verdad tampoco me refiero a 'VisualBasicScript'.
EDITO:Porfavor, no formularme preguntas por mensaje privado.CitarMe gustaría aclarar si lo que pido ¿se resuelve con archivos .bat o con script?
Un archivo .bat es un Script.
· Scripting language | Wikipedia (http://en.wikipedia.org/wiki/Scripting_language)
· Batch file | Wikipedia (http://en.wikipedia.org/wiki/Batch_file)
· Scripting languages | Wikipedia (http://en.wikipedia.org/wiki/Category:Scripting_languages)
Citary de ser esto ultimo, ¿que es lo que necesito saber para conseguirlo?
Simplemente necesitarías aprender lo básico del lenguaje, pero si no quieres aprender lo básico puedes aprender diréctamente el uso (la sintaxis) de los métodos que dispone del lenguaje para enviar pulsaciones del teclado, y la documentación de dichos métodos la puedes encontrar en la referencia oficial de cada lenguaje, si es que a eso te refieres con la pregunta, no tengo muy claro lo que quieres.
Cualquier lenguaje (decente) te serviría (Ej: Ruby, Python, C++, CSharp, VB, VB.NET, etc...), o cualquier lenguaje inferior de Scripting orientado a la automatización de tareas (Ej: VBScript, Powershell, LUA, etc...), o cualquier software de tipo '
Macro Recorder' para grabar y reproducir acciones ('Macros'), en fín prácticamente es una tarea que la puedes llevar a cabo de forma sencilla de muchas maneras, pero no usando como herramienta el triste e inutil
Batch.
Saludos!
Muchas gracias por las aclaraciones, intentare digerir poco a poco todo esto, saludos
CitarPuedes redirigir la salida del comando Echo, al Input de otro comando
Citarentonces puedes setearlo en una variable, por ejemplo, esto responderá automáticamente 'N' ('False') a una pregunta 'Booleana'
En ambos casos el usuario quedaba sin contraseña, así digité el comando
echo 123|net.exe user daniel *
Lo intente de otra forma
echo 123|net user daniel *
y por ultimo de esta forma
@echo off
set var=123
echo %var%|net user daniel *
En todos los casos el resultado fue el mismo, el usuario quedaba sin contraseña, quizás sea la excepcion de la que hablabas
Citarpero esto no siempre funcionará en todos los casos.
El comando espera el input por parte del usuario 2 veces consecutivas, una para introducir la contraseña, y otra para confirmarla. Si, lamentáblemente esta es una de esas excepciones.
De todas formas he notado que la sintaxis del comando permite especificar una nueva contraseña para la cuenta del usuario, diréctamente:
Net.exe user "Daniel" "Contraseña"
Y eso no requiere confirmación.
Saludos!
Efectivamente así es, una vez mas gracias y saludos!