elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Solucionado][BATCH]Problema con escritura en archivo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Solucionado][BATCH]Problema con escritura en archivo.  (Leído 3,253 veces)
FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
[Solucionado][BATCH]Problema con escritura en archivo.
« en: 31 Marzo 2011, 17:53 pm »

Hola, (de nuevo u.u), saludos.

Os vengo a molestar de nuevo porque ahora si que no sé que pasa o porque pasa lo que me pasa XDDDDD

Lo que pasa ( xDD ) es que tengo el siguiente trozo de script que por alguna razon no funciona como debería.

Código (CarroLleno.bat)
Código
  1. :DIGITAR_PEDIDO
  2. TITLE DIGITAR PEDIDO&CLS
  3. SET "PRODUCTO_="
  4. SET "CANTIDAD_P="
  5. SET /P "PRODUCTO_=Producto: "
  6. IF NOT DEFINED PRODUCTO_ (ECHO.&ECHO. Ingrese producto.-&ECHO.&PAUSE >NUL 2>&1&GOTO :DIGITAR_PEDIDO)
  7. IF /I "%PRODUCTO_%"=="copiar" (
  8. CLIP.exe < PEDIDO_DIGITADO_.txt
  9. GOTO :INICIO
  10. )
  11. SET /P "CANTIDAD_P=Cantidad: "
  12. IF NOT DEFINED CANTIDAD_P (ECHO.&ECHO. Ingrese Cantidad.-&ECHO.&PAUSE >NUL 2>&1&GOTO :DIGITAR_PEDIDO)
  13. SET "ESPACIO_= "
  14. ECHO %PRODUCTO_%%ESPACIO_%%CANTIDAD_P%>> PEDIDO_DIGITADO_.txt
  15. GOTO :DIGITAR_PEDIDO

Entonces el problema es el siguiente;
Por ejemplo si digito lo siguiente:

Código:
Producto : 178282
Cantidad : 1

Escribe solo 178282.

Pero si escribo;

Código:
Producto : 178282
Cantidad : 10

Escribe los valores como corresponde (que es como yo quiero que quede en el .txt):

Código:
178282		10

En definitiva, solo "escribe" los valores de la variable si son mayores a 9.
Si pongo por ejemplo el codigo de escritura asi:

Código
  1. ECHO %PRODUCTO_%>> PEDIDO_DIGITADO_.txt
  2. ECHO %CANTIDAD_P%>> PEDIDO_DIGITADO_.txt
  3.  

Ocurre exactamente lo mismo.

Estoy corriendo el script en Windows XP SP3 (por si es relevante :S)

PD: La variable %ESPACIO_% es necesaria, porque el contenido lo copio a SAP y SAP me pide ese espacio, si no, copia mal los datos.

Espero alguien me pueda ayudar, ya que no tengo idea porque pasa eso si no hago ninguna operación.

No llamo variables ni datos de otra parte del código.

Por favor, necesito saber como puedo solucionar esto o porque pasa por lo menos xDDD


Saludos y muchas gracias de ante mano :)


« Última modificación: 31 Marzo 2011, 23:58 pm por Leo Gutiérrez. » En línea

Asdf debería ser algún tipo de función.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: [BATCH]Problema con escritura en archivo.
« Respuesta #1 en: 31 Marzo 2011, 22:53 pm »

¿Y la etiqueta :INICIO?

¿porque no haces lo que te recomiendo?, porque el afán de poner varias sentencias en una sola línea?

Prueba esto a ver si funciona.


Código
  1. setlocal enabledelayedexpansion
  2. :PEDIDO
  3. TITLE DIGITAR PEDIDO
  4. CLS
  5. SET /P "PRODUCTO=Producto: "
  6. IF NOT DEFINED PRODUCTO (
  7. GOTO:PEDIDO
  8. )
  9.  
  10. IF /I "%PRODUCTO_%"=="copiar" (
  11. CLIP.exe < PEDIDO_DIGITADO_.txt
  12. GOTO:INICIO
  13. )
  14. :CANTIDAD
  15. SET /P "CANTIDAD=Cantidad: "
  16. IF NOT DEFINED CANTIDAD (
  17. GOTO:CANTIDAD
  18. )
  19. ECHO !PRODUCTO!!ESPACIO_!!CANTIDAD!>> PEDIDO_DIGITADO_.txt
  20. GOTO :PEDIDO
  21.  


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: [BATCH]Problema con escritura en archivo.
« Respuesta #2 en: 31 Marzo 2011, 23:56 pm »

=O!, Funciona a la perfección, pero era solo por las sentencias en una sola linea? o igual influía lo de "setlocal enabledelayedexpansion"??.

Y la etiqueta :INICIO va al principio del script después de copiar :)

Aun así nunca había tenido problemas con escribir varias sentencias en una sola linea :S.

Muchas gracias Leo nuevamente por tu ayuda =)


Deberias (algun dia) explicar lo de setlocal enabledelayedexpansion xDDD, aun no entiendo  bien como funciona xDD


Pero bueno, muchas gracias de nuevo ^^
En línea

Asdf debería ser algún tipo de función.
SuperDraco


Desconectado Desconectado

Mensajes: 2.505


Crew Dragon


Ver Perfil
Re: [Solucionado][BATCH]Problema con escritura en archivo.
« Respuesta #3 en: 1 Abril 2011, 02:53 am »

creeme yo antes era como tu, ponía todas las sentencias en una linea...
Luego Leo me reectificó un code y desde entonces me di cuenta que era mucho mejor hacerlo así, a la hora de editar/buscar fallos en el script es MUCHISIMO más cómodo, y todo...no tiene comparación. Te recomiendo que a partir de ahora no sigas las malas costumbres.


Sobre el enabledelayedexpansion, para entenderlo mejor debes ponerlo en práctica, mirate estos ejemplos:
http://www.portalhacker.net/index.php/topic,81128.0.html
« Última modificación: 1 Abril 2011, 02:58 am por pitoloko » En línea

No he vuelto, solo estoy de paso.
FranciskoAsdf

Desconectado Desconectado

Mensajes: 231


Ni bueno, ni malo. Solo nada.


Ver Perfil WWW
Re: [Solucionado][BATCH]Problema con escritura en archivo.
« Respuesta #4 en: 1 Abril 2011, 14:55 pm »

Ok gracias pi
creeme yo antes era como tu, ponía todas las sentencias en una linea...
Luego Leo me reectificó un code y desde entonces me di cuenta que era mucho mejor hacerlo así, a la hora de editar/buscar fallos en el script es MUCHISIMO más cómodo, y todo...no tiene comparación. Te recomiendo que a partir de ahora no sigas las malas costumbres.


Sobre el enabledelayedexpansion, para entenderlo mejor debes ponerlo en práctica, mirate estos ejemplos:
http://www.portalhacker.net/index.php/topic,81128.0.html

Gracias pitoloko por el dato, a ver si de una vez aprendo a usar el famoso comando xDD

Saludos :)
En línea

Asdf debería ser algún tipo de función.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines