Ayuda con Batch

Iniciado por occam25, 28 Julio 2010, 11:11 AM

0 Miembros y 1 Visitante están viendo este tema.

occam25


Hola,
estoy programando un batch y quiero que almacene en una variable la salida de un programa que lee la firma de un micro, pero no lo hago bien.

hago algo así:


%STK_PATH% -ccom1 -d%TARJET% -s | find "Signature is ">%%a

SET SIGNATURE=%%a

@ECHO %SIGNATURE%


Donde STK_PATH es la variable donde he definido el path del programa que lee el micro y TARJET es el micro que quiero leer.
Mis dudas vienen en el find y, sobre todo, en almacenar la salida en una variable SIGNATURE.

Supongo que para el que ya haya programado en batch esto estará chupado..

Alguna ayudita plis

leogtz

Supongo que debería funcionar:

Código (dos) [Seleccionar]
for /f "tokens=*" %%a in ('%STK_PATH% -ccom1 -d%TARJET% -s ^| find "Signature is "') do (
set "signature=%%a"
)
echo %signature%
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

¬¬Turbo Cappa

Saludos, primero una disculpa a "occam25" por colgarme de su hilo para poner mi duda, es que no quiero hacer spam con multitud de hilos con dudas noob :D.
Después quisiera que me ayudaran pues no entiendo que estoy haciendo mal me he leído infinidad de ejemplos y sigo teniendo el mismo problema.
Ayuda por favor y gracias de ante mano...


DA KILLER

En realidad estás haciendo spam ahora, al colgarte de un hilo ajeno, no te cuesta nada abrir un nuevo post, y ALLI hacer tus dudas, y por favor deja el code no somos adivinos, al menos que yo sepa xD
.: DA KILLER :.



¬¬Turbo Cappa

Lo siento creo k me falta echar una leidita de nuevo a las reglas del foro, en la imagen esta el código junto con el error que me sale es una captura de pantalla gracias por la pronta respuesta y de nuevo una disculpa...


DA KILLER

#5
EDITO SI SALE, AHORA LO LEO

No declaraste los archivos, si no es eso prueba con revisar las rutas, y que existan las carpetas

Saludos
.: DA KILLER :.



flony

la parte del if errorlevel lo pondria debajo de el copy
yo siempre uso copy no xcopy y con un @antes un ejemplo que me funciona aclaro tengo sistema operativo xp
bue llego visitas mñn lo pongo al code pero es bastante facil
si un problema no tiene solucion entonces no es un problema...es algo inevitable

¬¬Turbo Cappa

#7
 ;-)
lo he logrado.
soy algo lento  pero lo importante es k lo logre
pongo el code para el k lo ocupe  :¬¬ es solo un copy and paste pero bueno...

gracias a DA KILLER por la ayuda....

gracias flony lo puse abajo y funciono mejor :D

@echo off

copy "C:\Documents and Settings\Administrador\Mis documentos\pruevas bat\A\hola.bat" "C:\Documents and Settings\Administrador\Mis documentos\pruevas bat\B\hola.bat"

IF ERRORLEVEL 2 GOTO ERROR

echo Proceso Terminado
echo favor de pulsar enter
echo gracias

pause>nul

exit

DA KILLER

Otra cosa que puedes hacer es en vez de pedir que presionen una tecla solo dejar el pause en pantalla es decir "pause" y te diría "Presione cualquier tecla para continuar..."

SaluDOS
.: DA KILLER :.



flony

otra cosita estaba viendo el code y en la parte del IF ERRORLEVEL 2 GOTO ERROR
para traducirlo al castellano le pedis al code que si
CitarEl usuario presionó Ctrl+Pausa para suspender el proceso de copy
...se valla a la etiqueta error pero veo que la etiqueta error no estadeclarada,  se declara asi
@echo off

copy "C:\Documents and Settings\Administrador\Mis documentos\pruevas bat\A\hola.bat" "C:\Documents and Settings\Administrador\Mis documentos\pruevas bat\B\hola.bat"

IF ERRORLEVEL 2 GOTO ERROR

echo Proceso Terminado
echo favor de pulsar enter
echo gracias
pause>nul

:error
no aprete pausa jajaja

pause>nul

exit

bue como ves se declara con un :etiqueta...esto es xq el comando goto lleva a una etiqueta...a una parte del code  ;)
si un problema no tiene solucion entonces no es un problema...es algo inevitable