Autor
|
Tema: [BATCH] Cómo se podrían guardar variables? (Leído 19,293 veces)
|
Duning
Desconectado
Mensajes: 9
|
Hola....otra vez xD. Bueno, lo que vengo preguntado es cómo puedo hacer para que el bat pueda leer líneas de un txt (u otro tipo) para utilizarlas como constates una vez cerrado el bat, me explico. Quiero que alguien venga y:
escriba por ejemplo "pepe" Cierre el bat, lo vuelva a abrir y cuando haga
Salga pepe Quiero esto porque estoy intentado hacer un bat en el que cambias nombres a una serie de cosas. Y cuando re abras el bat, quiero que las recuerde. Pues sobretodo eso, gracias por adelantado.
|
|
« Última modificación: 31 Julio 2012, 02:30 am por EleKtro H@cker »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Las variables, logicamente solo tienen efecto en la ejecución del script... Y cuando finaliza la instancia de la CMD, finaliza el almacenamiento de las variables en la memoria. Hay varias formas de "recordar" eso... Guardando la variable "nombre" en un archivo temporal, O guardandolo en el mismo script (Al final del script), O agregando una variable de entorno al sistema: SETX "NOMBRE" "elhacker.net" >NUL
Saludos
|
|
« Última modificación: 31 Julio 2012, 02:35 am por EleKtro H@cker »
|
En línea
|
|
|
|
Duning
Desconectado
Mensajes: 9
|
Las variables, logicamente solo tienen efecto en la ejecución del script... Y cuando finaliza la instancia de la CMD, finaliza el almacenamiento de las variables en la memoria. Hay varias formas de "recordar" eso... Guardando la variable "nombre" en un archivo temporal, O guardandolo en el mismo script (Al final del script), O agregando una variable de entorno al sistema: SETX "NOMBRE" "elhacker.net" >NUL
Saludos "SETX" no se reconoce como un comando interno o externo, programa o archivo de lotes ejecutable. Presione una tecla para continuar . . .
Me salta ese error :C alguna idea? btw estoy en XP Otra cosa son unos errores que no se por que tengo :C 1.COPY minecrafts1.jar %appdata%\.minecraft\bin\Jars
Me dice "La sintaxis del comando no es correcta." Pero aqui dice que es así... http://www.elhacker.net/ProgramacionBat.htmlCOPY [opciones] [origen] [destino] 2.RD %HOMEPATH%\Escritorio\Meter_el_Jar_aqui
Me dice: El nombre del directorio no es válido. El sistema no puede hallar el archivo especificado. El sistema no puede hallar la ruta especificada.
Esto no lo entiendo para nada, me salen 3 errores por una sola linea de comando, y lo unico que quiero hacer es borrar la carpeta "Meter_el_Jar_aquí" que está ubicada en "%HOMEPATH%\Escritorio\Meter_el_Jar_aqui" Una ayudita por favor...
|
|
« Última modificación: 31 Julio 2012, 15:40 pm por Duning »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Te voy a dar un consejo para novatos: Si alguna vez te falla un comando, usa " ECHO" al principio del comando para ver el error. Ejemplo: Este comando no te funciona: RD %HOMEPATH%\Escritorio\Meter_el_Jar_aqui Con echo podemos ver porqué: Como ves, La variable %HOMEPATH% no usa la letra de la unidad, Y sin la letra ( C:) el comando falla.
"SETX" no se reconoce como un comando interno o externo,
estoy en XP SETX no está instalado en WindowsXP por defecto (En Windows 7 sí). Aquí puedes bajarlo: Windows XP Service Pack 2 Support ToolsCOPY minecrafts1.jar %appdata%\.minecraft\bin\Jars
Me dice "La sintaxis del comando no es correcta." El comando falla porque falta el slash al final de la ruta. ( \) Aparte, Deberías usar comillas dobles cuando escribas rutas que puedan contener espacios. COPY "minecrafts1.jar" "%appdata%\.minecraft\bin\Jars\" Debes usarlo siempre en el comando copy para que pueda diferenciar lo que es una carpeta, y lo que es un archivo. RD %HOMEPATH%\Escritorio\Meter_el_Jar_aqui
El nombre del directorio no es válido.
Esto ya lo expliqué antes pero no te lo solucioné, Ok, Debes usar la variable %USERPROFILE%. RD "%userprofile%\Desktop\Meter_el_Jar_aqui" Saludos
|
|
|
En línea
|
|
|
|
Binary_Death
Desconectado
Mensajes: 214
|
Si te es necesario mantener el valor de una variable, siempre puedes guardarla como variable de entorno. Vamos a ver, la ruta del registro es esta: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Ahí, como puedes ver, todos los valores son REG_SZ, por tanto, haciendo un: REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "nombre" /d "pepe" /f
Ahora cierra la cmd. Vuelve a abrirla (aunque creo que es necesario reiniciar primero el sistema). Escribe: Y como ves, el nombre de "pepe" quedó guardado. De todas formas, estoy seguro de que para cualquier cosa que pretendas hacer, habrá métodos más eficientes.
|
|
|
En línea
|
|
|
|
Duning
Desconectado
Mensajes: 9
|
Muchísimas gracias por todo ^^ Pero una cosa... Y no hay otro modo que no sea con el SETX para XP? Enserio tio, muchísimas gracias
Si te es necesario mantener el valor de una variable, siempre puedes guardarla como variable de entorno. Vamos a ver, la ruta del registro es esta: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Ahí, como puedes ver, todos los valores son REG_SZ, por tanto, haciendo un: REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "nombre" /d "pepe" /f
Ahora cierra la cmd. Vuelve a abrirla (aunque creo que es necesario reiniciar primero el sistema). Escribe: Y como ves, el nombre de "pepe" quedó guardado. De todas formas, estoy seguro de que para cualquier cosa que pretendas hacer, habrá métodos más eficientes. Voy a probarlo.... wait... xD Edito:Si te es necesario mantener el valor de una variable, siempre puedes guardarla como variable de entorno. Vamos a ver, la ruta del registro es esta: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Ahí, como puedes ver, todos los valores son REG_SZ, por tanto, haciendo un: REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "nombre" /d "pepe" /f
Ahora cierra la cmd. Vuelve a abrirla (aunque creo que es necesario reiniciar primero el sistema). Escribe: Y como ves, el nombre de "pepe" quedó guardado. De todas formas, estoy seguro de que para cualquier cosa que pretendas hacer, habrá métodos más eficientes. A ver: REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "s1" /d "Slot vacia"
Debería salir "Slot vacia" no? Pues no sale :C pero cuando intento volverlo a hacer me pregunta si quiero substituir el valor actual de "s1". Que estoy haciendo mal?
|
|
« Última modificación: 31 Julio 2012, 17:04 pm por Duning »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Que estoy haciendo mal? creo que es necesario reiniciar primero el sistema saludos
|
|
|
En línea
|
|
|
|
Danirs
Desconectado
Mensajes: 71
|
Uuups lo puese aqui en vez del tema del virulator lo siento xD moverlo Buenas! Perdon por el doble post pero tengo una par de dudas acerca del gran trabajo del virulator. Queria saber el orden de prioridades al ejecutar una tarea, si programo 10 cual se ejecuta primero? o se ejecutan todos a la vez? y si es asi como hago para ejecutarlas en el orden deseado? Creo que pido demasiado Pero hacer lo que podais. Y la ultima duda, que es eso del "efecto matrix" y "fake virus" Gracias por la atencion y un gran trabajo.
|
|
|
En línea
|
Qué es la vida un frenesí. Qué es la vida una ilusión, una sombra, una ficción. Que todo en la vida es sueño y los sueños, sueños son.
|
|
|
Duning
Desconectado
Mensajes: 9
|
saludos
Pues sí, había que reiniciar, entoces no me sirve ese método D: Alguna forma que sirva en XP, Vista 7 (sin instalar aquello) y sin tener que reiniciar? Luego, RD " %userprofile%\Escritorio\Meter_el_Jar_aqui"
Tengo que poner "Escritorio", no Desktop si no a mi no me funciona, y en Windows 7 funcionará? Otro, REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "s1" /d "Slot vacia"
Cada vez que quiero cambiarle el valor, me dice que ya existe, y me pregunta si quiero sobreescribirlo. ¿Como hago para que no lo pregunte, sino que directamete lo sobreescriba sin preguntar? (¿Sería con /Q ?)
|
|
« Última modificación: 31 Julio 2012, 18:12 pm por Duning »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.885
|
Alguna forma que sirva en XP, Vista 7 (sin instalar aquello) y sin tener que reiniciar?
RD " %userprofile%\Escritorio\Meter_el_Jar_aqui"
Tengo que poner "Escritorio", no Desktop si no a mi no me funciona, y en Windows 7 funcionará? No, No funcionará. Puedes hacer esto: RD " %userprofile%\Escritorio\Meter_el_Jar_aqui" 2 >NUL || (RD " %userprofile%\desktop\Meter_el_Jar_aqui" )
REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v "s1" /d "Slot vacia"
¿Como hago para que no lo pregunte, sino que directamete lo sobreescriba sin preguntar? (¿Sería con /Q ?)Lee la ayuda del comando y lo sabrás, No ibas mal encamindado... Saludos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Guardar variables en el ejecutable
Programación Visual Basic
|
wifinet
|
1
|
1,748
|
4 Febrero 2006, 18:33 pm
por BenRu
|
|
|
Guardar valores en variables
Scripting
|
kraszic
|
4
|
3,054
|
19 Enero 2008, 03:14 am
por warlock45
|
|
|
Variables dentro de variables (batch)
Scripting
|
MK-Ultra
|
8
|
7,908
|
6 Febrero 2008, 23:18 pm
por GUN$
|
|
|
[BATCH] Guardar vaiables
Scripting
|
tmb90
|
6
|
3,594
|
18 Agosto 2012, 04:25 am
por tmb90
|
|
|
Guardar variables en disco
Programación C/C++
|
Bròquil
|
3
|
2,428
|
7 Diciembre 2013, 01:33 am
por rir3760
|
|