Variables en BATCH

Iniciado por crazykenny, 18 Enero 2014, 21:49 PM

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

crazykenny

Hola a todos; el caso es que hoy he empezado a programar un poco en Batch, y, bueno, no se si debería poner este post aquí o bien en la sección de Malware por lo que quiero hacer, pero bueno.
Entonces, el caso es que estoy experimentando un poco realizando un pequeño programa que, digamos, si una unidad existe en Windows para, de este modo, copiarse a dicha unidad y a partir de ahí, ejecutarse (cabe destacar que este proceso lo realiza indefinidamente).
Entonces, me surgen los siguientes problemas a los que no he encontrado solucion a través de google;
-El primero es que no se como hacer que el programa trabaje, digamos, escondido, por lo que necesito que, a ser posible, no muestre la ventana para enseñar lo que esta realizando.
-El segundo es que no se como añadir texto a una variable; no se si me explico.
Según he leído, puedes asignar un determinado texto a una variable poniendo algo asi como set %variable%=texto, pero si tengo una variable con un texto determinado, pues no se como añadir texto adicional a la variable sin eliminar el que ya tenia.
Os agradecería mucho vuestra ayuda porque no se como hacer esto.
Muchas gracias por vuestra atención, y me disculpo por todas las molestias causadas con este tema.
Saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/

ivancea96

Set var=Hola
Set var=%var% y adios :3
echo %var%


El eco debería ser "Hola y adios :3".

crazykenny

Cita de: ivancea96 en 18 Enero 2014, 22:53 PM
Set var=Hola
Set var=%var% y adios :3
echo %var%


El eco debería ser "Hola y adios :3".
Entiendo, y muchas gracias por tu respuesta ivancea96, es lo que necesitaba.
Por otra parte, y, si no es mucho pedir, claro esta, ¿en batch es posible "ocultar" la ventana que aparece cuando se ejecutan los archivos ".bat" (u algo asi)?.
Por ultimo, y, aunque no sea posible realizar esto que pregunto, ¿sabes si es posible evitar que aparezcan las ordenes que ejecuta el programa?.
Por ejemplo, cuando ejecuto los archivos ".bat", antes de ejecutar las ordenes que le he puesto, aparece la ruta desde donde se ejecuta el archivo y después la orden que le he indicado, y me preguntaba si es posible esconder dichas ordenes.
Muchas gracias por vuesrtra atención.
Saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/

ivancea96

Url sobre Batch :P

Lo de que no se vea la ruta, es poniendo "@echo off" al principio.
Lo de la consola,
Código (vb) [Seleccionar]
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "nombre_del_bat.bat" & Chr(34), 0
Set WshShell = Nothing


VisualBasicScript. Así es como hacía yo.

crazykenny

#4
Hola, ivancea96.
He intentado probar tu código en mi bat, pero tengo problemas para que funcione el código en si.
Veras, mi código lo que hace básicamente (y el cual quisiera aportarlo a la sección de análisis y diseño de malware cuando pueda ocultar la ventana) consiste en copiar archivos de si mismo, y cuando pongo tu código falla (y no lo digo para molestar ni nada por el estilo) y no hace nada.
No obstante, creo que no lo he puesto bien y no se como ponerlo, a ver si me puedes ayudar;
Código (vb) [Seleccionar]

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "darta.bat" & Chr(34), 0
Set WshShell = Nothing
copy %0 "J:/dartacbb.bat"
goto nombre
:nombre
pause
exit

Por otra parte, se que he puesto una etiqueta debajo para ir al código; evidentemente, a sido intencionado y la etiqueta debería ir encima del copy, pero este código es para hacer pequeñas pruebas antes de poner la idea completa.
Muchas gracias por vuestra atención.
Saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/

ivancea96

Ah, perdón. El Visual Basic Script, lo tendrías que guardar como "<nombre>.vbs".
Un archivo a parte.

Si tal, busca más acerca de vbs, y como hacer lo que buscas de ocultar la consola. Hay mucho por internet.

crazykenny

Muchas gracias por la información ivancea96.
Cuando haga la prueba te comento; no obstante, una ultima pregunta, si no es molestia, claro esta; el .vbs, para que me oculte la consola, ¿he de ejecutarlo a través del .bat, verdad?.
Muchas gracias por vuestra atención.
Saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/

ivancea96

#7
Bueno, no soy yo expero en vbs, pero:

Código (vb) [Seleccionar]
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "darta.bat" & Chr(34), 0
Set WshShell = Nothing


Eso inicia "darta.bat", sin consola (creo). Así que te basta con inicias el vbs, y él ya inicia el bat.

daryo

#8
que tal esto?
desde un solo archivo creas los demas que necesitas el ocultar.vbs y el darta.bat luego ejecuta el ocultar.vbs
Código (dos) [Seleccionar]

echo Set WshShell = CreateObject("WScript.Shell") > ocultar.vbs
echo WshShell.Run chr(34) & "darta.bat" & Chr(34), 0 >> ocultar.vbs
echo Set WshShell = Nothing >> ocultar.vbs
echo :calculadora > darta.bat
echo start calc >> darta.bat
echo goto calculadora >> darta.bat
ocultar.vbs





[MOD]: La etiqueta "batch" no existe, es [ code = dos ] :P
buenas

crazykenny

Cita de: daryo en 19 Enero 2014, 14:48 PM
que tal esto?
desde un solo archivo creas los demas que necesitas el ocultar.vbs y el darta.bat luego ejecuta el ocultar.vbs
Código (dos) [Seleccionar]

echo Set WshShell = CreateObject("WScript.Shell") > ocultar.vbs
echo WshShell.Run chr(34) & "darta.bat" & Chr(34), 0 >> ocultar.vbs
echo Set WshShell = Nothing >> ocultar.vbs
echo :calculadora > darta.bat
echo start calc >> darta.bat
echo goto calculadora >> darta.bat
ocultar.vbs





[MOD]: La etiqueta "batch" no existe, es [ code = dos ] :P


Ante todo muchas gracias por vuestras respuestas y por vuestra ayuda que me ha parecido muy útil, la verdad.

Por otra parte, a ver, no se si lo he comentado, o, almenos, creo que he comentado algo relacionado con la sección de malware, pero podríamos decir que, bueno, y, sin animo de ofender, ni nada por el estilo, he decidido empezar a programar un poco en batch para hacer un pequeño experimento con lo que conozco de otro lenguaje de programaciuon.

Entonces, la idea en cuestión que he tenido, digamos que podría definirse como un "intento de virus" cuya finalidad es generar copias de si mismo en los discos duros y demás dispositivos de almacenamiento conectados a un ordenador con SO Windows.

Por otra parte, el motivo por el cual he abierto este tema y he comentado lo de la sección de malware, pues viene a ser porque desconozco ciertas cosas que necesito para la creación de este intento de virus, pero esto no significa que la idea básica de, digamos, código del virus, no la conozca; es mas, he realizado una pequeña prueba en mi ordenador y ha hecho lo que esperaba.

Dicho sea de paso, y, dado que la idea de este programa es copiarse y ejecutar sus copias a través de discos duros y demás dispositivos de almacenamiento tipo pendrive (entre otras cosas) con el objetivo de llenar estos dispositivos y la CPU y la memoria RAM de un ordenador, ¿os parecería bien si aporto dicho código en la sección de análisis y diseño de malware, ya que estamos?.

Ademas, esto ultimo también lo comento porque, bueno, necesitaría unas dos ultimas cosas (si no es mucho pedir, claro esta), las cuales he visto en este foro, pero, no las he acabado de entender muy bien sobre como realizarlas con el objetivo de entender mas cosas relacionadas con el funcionamiento de malware, claro esta.

Por ultimo, decir que dispongo de un ordenador portátil que creo que esta en sus ultimas, y, dado el caso, tengo previsto utilizar el código en maquinas virtuales y/o en dicho portátil, claro esta.
Muchas gracias por vuestra atención.
Saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/