Autor
|
Tema: -> Programación BATCH Avanzada. (nuevo) (Leído 34497 veces)
|
ArcheritONE
Desconectado
Mensajes: 437
Estar orgulloso de Catalunya y España es posible
|
Buenas, necesito saber como se puede guardar el valor de una entrada del registro en una variable, gracias 
|
|
|
|
|
En línea
|
|
|
|
nhaalclkiemr
Desconectado
Mensajes: 1.644
Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92
|
Primero este no era el mejor sitio para hacer tu pregunta, podías haber abierto un nuevo tema...y aún así nunca pensaste pork existen post pegados!!!!!!!????? Mirate este: Librería de funciones y scripts BATCH Actualizado 26/05/07Y para que veas te pongo el código que te interesa aki cuyo titulo es casi igual que tu pregunta: Script para extraer el valor de una clave del registro@echo off :: Script para extraer el valor de una clave del registro :: By nhaalclkiemr :: Special thanks to Sdc reg export "RUTA_CLAVE" "temp.tmp" if not %errorlevel%==0 goto error type temp.tmp | find "NOMBRE_CLAVE" > cadena_encontrada.tmp del /S /F /Q /A:- temp.tmp FOR /F "tokens=2* delims==" %%I IN (cadena_encontrada.tmp) DO set var="%%I" if "%var%"=="" goto error FOR /F "tokens=2* delims==" %%I IN (cadena_encontrada.tmp) DO ( call:PARSEA %%I ) goto :EOF :PARSEA del /S /F /Q /A:- cadena_encontrada.tmp SET PP="%~1" SET PP=%PP:\\=\% SET PP=%PP:"=% :: Aqui va el bat, el valor de la clave queda guardado en la variable PP exit :error :: Aqui va el bat de error en caso de que la RUTA_CLAVE o NOMBRE_CLAVE no exista exit Hay que usar el boton  Saludos 
|
|
|
|
|
En línea
|
|
|
|
ArcheritONE
Desconectado
Mensajes: 437
Estar orgulloso de Catalunya y España es posible
|
Busqué por google y en este tema, pero en el foro se me olvido xD Muchas gracias, voy a probarlo 
|
|
|
|
|
En línea
|
|
|
|
Alfil0022
Desconectado
Mensajes: 1
|
Hola.
Tengo un problema con un batch. Parece que SET no funciona dentro de un bucle FOR. Es posible? El batch es el siguiente
set J=1 for %%I in (*.jpg) do ( ren %%I %J%.jpg set /a J+=1 )
He probado con CALL SET /A J+=1 y tampoco
Tambien he probado ...
set J=1 for %%I in (*.jpg) do ( ren %%I %J%.jpg call:increm echo %J% ) goto fi
:increm set /a J+=1 goto:EOF
:fi
El caso es que cuando ejecuto el siguiente codigo fuera del batch si que funciona
set J=1 set /a J+=1 echo %J%
(J vale 2)
Alguien sabe que es lo que pasa?
Gracias
|
|
|
|
|
En línea
|
|
|
|
|
sirdarckcat
|
que tienes que activar las extensiones de comandos, o hacer una llamada a una funcion dentro del for para poder hacer eso.
Saludos!!
|
|
|
|
|
En línea
|
|
|
|
nhaalclkiemr
Desconectado
Mensajes: 1.644
Máximo exponente 9DB9F1AEED2FADBDE 997BBE20FEDA92
|
A mi si te digo la verdad lo de las extensiones de comando y usar ! en lugar de % nunca me funcionó...ya lo había comentado anteriormente pero weno es igual... saludos 
|
|
|
|
|
En línea
|
|
|
|
~[uNd3rc0d3]~
Desconectado
Mensajes: 139
programando...
|
muy bueno el manual
lo he visto por toda la red xDD
un comando que yo soy de usar bastante seguido y que nunca lo vi en un manual es CACLS para editar las acl de windows y quitar o otorgar derechos
quizas esta un poco incompleto lo de los argumentos ya que vi dudas por ahi pero es el unico manual de programacion avanzada que deambula por la red xDD
hasta otra
|
|
|
|
|
En línea
|
 leete las reglas asi todos estamos mejor
|
|
|
Berzeker
Desconectado
Mensajes: 2
|
Hola, tengo un codigo con el cual se ejecuta un ftp, quisiera que todos los archivos que se encuentren en un directorio y tambien en los subfolders de este (ejemplo: C:\users\berzeker\pictures\foto.jpg C:\users\berzeker\pictures\vacaciones\foto.jpg) sean los que se transfieren, pero los archivos transferidos van a ser solo los que tengan determinada extension; algo asi *.jpg (es decir que el codigo que necesito solo necesitaria modificarle la extension para que mande .jpg .doc. .txt etc) cualquier ayuda, muchas gracias 
|
|
|
|
|
En línea
|
|
|
|
Berzeker
Desconectado
Mensajes: 2
|
Hola, he avanzado un poco con la ultima duda que tuve pero no la he podido resolver todavía, se me ocurrio usar el comando dir /s y guardar la informacion, despues ejecutar find, pero lo unico que consigo con esto es ver los nombres de los .jpg, mas no la ruta que es indispensable para ejecutar el ftp (creo), alguna idea?
En otra cosa, quisiera saber como copiar el contenido de una pagina en internet en un .txt para usar un find sobre el, o si tienen algun otro metodo con batch, gracias.
|
|
|
|
|
En línea
|
|
|
|
paperas
Desconectado
Mensajes: 3
|
Buenas Tardes, Un saludo a todos:
Soy nuevo en esto de la programacion, quisiera solicitarles de favor si me pudieran ayudar a resolver mi problema, hay un sistema instalado como en 20 clientes aprox. y en cada cliente se va generando un archivito de audio dentro de una carpeta especifica en donde contiene la grabacion de la llamada que recibe la operadora del sistema, mi problema es que me estan pidiendo concentrar todos esos archivos de audio de cada maquina en una sola, las cuales obviamente estan conectadas por red con TCP/IP, como puedo crear un batch que me haga esto?
de antemano, muchas gracias
|
|
|
|
|
En línea
|
|
|
|
kefren
Desconectado
Mensajes: 413
Qué sabrá un burro de música clásica...
|
Buenas Tardes, Un saludo a todos:
Soy nuevo en esto de la programacion, quisiera solicitarles de favor si me pudieran ayudar a resolver mi problema, hay un sistema instalado como en 20 clientes aprox. y en cada cliente se va generando un archivito de audio dentro de una carpeta especifica en donde contiene la grabacion de la llamada que recibe la operadora del sistema, mi problema es que me estan pidiendo concentrar todos esos archivos de audio de cada maquina en una sola, las cuales obviamente estan conectadas por red con TCP/IP, como puedo crear un batch que me haga esto?
de antemano, muchas gracias
No se si se podrá hacer eso con un BATCH, en tal caso sería con una especie de Telnet o algo asi SaluDOS
|
|
|
|
|
En línea
|
|
|
|
paperas
Desconectado
Mensajes: 3
|
muchas gracias por tu respuesta kefren
Si la verdad me estoy dando cuenta de eso porque ya tengo varias semanas buscando algo parecido y no encuentro por ningun lado, si tu sabes de programacion algo que me pudieras recomendar, no se con VB, Delphi o algo parecido, osea necesito automatizar ese proceso y que sea transparente para el usuario, es decir que no tenga que estar dando contrasenas a un ftp o por medio de un telnet, sino mas bien idear un programita que lo haga diario y sobre todo transparente. Un saludo
|
|
|
|
|
En línea
|
|
|
|
|
^Arkangel^
|
una pregunta? este batch esta beien? lo hice yo copiando un poco de este foro...
codigo: color 2 echo ¡Bienvenido! sigue las instrucciones set /p nombre= como te llamas? :menu cls echo. echo 1) Chequear seguridad de contraseña echo 2) Salir set /p opc=que quieres hacer %nombre%:
if %opc%==1 goto ver if %opc%==2 goto end :ver set /p con= ingresa tu contraseña: cls echo analizando... echo. echo. echo Presione una tecla para ver la seguridad... pause > nul if %con% GEQ 8 (echo contraseña: Buena) ELSE (echo contraseña: Mala, cambiala) pause > nul
:end echo Presione una tecla para salir pause > nul exit
y nada mas... solo eso suerte Pupybell
Yo le cambiaria las siguientes cosas: 1ro y principal hay que añadirle @echo off para que no se vean los comandos cuando lo ejecutas. 2do me salteria toda esta parte: set /p nombre= como te llamas? :menu cls echo. echo 1) Chequear seguridad de contraseña echo 2) Salir set /p opc=que quieres hacer %nombre%:
if %opc%==1 goto ver if %opc%==2 goto end :ver
Eso es porque : 1) Hay verdadera necesidad de preguntarle el nombre al usuario ? 2) Si ejecuta el programa va a ser para (si el programa tiene 1 sola funcion, ejercer dicha funcion) asique si elijiese salir, no habria tenido necesidad de siquiera ejecutar el programa. Me explico ? 3ro No entiendo que quieres poner aca: if %con% GEQ 8 (echo contraseña: Buena) ELSE (echo contraseña: Mala, cambiala)
Seguramente queires poner que si tiene 8 o mas caracteres es buena, sino es mala. Ahi lo que en realidad pusiste es que si la contraseña (siempre y cuando sea solo numerica) es = o mayor a 8 es buena, contrario es mala (OJO: si es = o mayor en numero, ejemplo que pones 00000000001 eso es mala sugun el batch xq ese numero no es mayor a 8, si pones 9 entonces batch lo toma como bueno, me explico?) y despues, un pequeño detalle al principio: color 2
Personalmente creo que queda mejor un verde mas claro, esto lo haces asi: color 0c
Espero haberte sido de ayuda! Nos vemos 
|
|
|
|
|
En línea
|
|
|
|
|
^Arkangel^
|
De nada, siempre es un placer ayudar.
Saludos
|
|
|
|
|
En línea
|
|
|
|
drotha2
Desconectado
Mensajes: 3
|
Hola a tod@s!!!
Me alegro encontrar un manual como el de la primera pagina, aunque me aclaro mucho no consigo que me funcione, tal vez, por que no sepa...
Cuento el problema a ver q soluciones tiene...
Tengo un lector de tarjetas SD y un adaptador de SD, un software a cargar en tarjetas... Estoy intentando q el bach formatee de forma rápida la sd, para limpiarla, de esta forma tarda menos que hacer un del, me encuentro con que el format me pide pulsar tecla cuando este lista la unidad, despues que le ponga nombre, después paso a meter datos, pero en ocasiones me cambia la letra de la unidad, necesitaría q preguntara, si no la encuentra en la letra normal, que unidad se grabaran los datos. a ver, en ocasiones me da la unidad L pero otras la J o la M, el problema, imagino, seria q el bach supiera si la unidades del card reader están para escribir o no y si es q no preguntara la unidad a escribir.
Esa es la parte mas chunga, para mi, claro, posiblemente me deis distintas soluciones.
Total, seria, como limpiar la unidad, en caso de usar FORMAT que este no pida pulsar teclas o meter nombre, que fuera rápido... Que detecte la unidad a grabar y si no encuentra pida letra de unidad a grabar...
Imagino q esta algo chungo o directamente seria mas sencillo que pidiera la letra de la unidad a grabar...
Espero podáis ayudarme... hace algunos años q no uso los comandos msdos
Un saludo y gracias!!
|
|
|
|
|
En línea
|
|
|
|
|
|