none
Ayuda con programas de procesamiento por lotes!!

    Question

  • Bueno, lo primero de todo es que ya voy por el capitulo 10 del librillo, solo me faltan 6 capitulos mas..y que decir, pese a que muchas cosas no las estoy pudiendo aplicar bien por que ya son comandos obsoletos o por que muchas cosas trantan sobre modificar ms-dos desde la shell, estoy encantado con el libro y aprendiendo muchisimo!!

    Bueno a lo que vamos, la "definicion" por llamarlo de algunas manera de estos "programas" la se..lo que me gustaria es saber algun ejemplo para poderlo aplicar  en el ordenador..la mayoria de los ejemplos que salen en el libro, son con disquetes y en virtual...esta dificil...

    Luego tambien preguntar dudas con el comando "if", vereis quiero abrir o "asociar" este comando a que habra un programa...

    Segun el libro:

    "por ejemplo, el siguiente comando iniciara microsoft word cuando se introzuca la letra W como parametro:
    if"%1"=="W"c:\word\word

    Supongamos que deseamos crear un programa de procesamiento por lotes denominado EJECUTAR.BAT que inicie el programa de ajedrez, JMATE.EXE cuando se introduzca el siguiente comando:

    ejecutar A

    Para ellos, incluya el siguiente comando if en el programa EJECUTAR.BAT:
    if"%1"=="A"jmate

    Vale, esto es lo que decia el libro, ahora yo lo quiero poner en practica..
    He creado ya un .bat y dentro de el he puesto esto: if"%1"=="A"mshearts

    El programa que quiero abrir es un juego de windows XP (no se me ocurria otra cosa xD)... el caso es que me voy a una consola (sin privilegios de administrador)..lanzo en la consola esto:

    C:\Documents and Settings\cuenta simple>if"%1"=="A"c:\Documents and Settings\cue
    nta simple\Mis documentos
    "if"%1"" no se reconoce como un comando interno o externo,
    programa o archivo por lotes ejecutable.

    Ya veis lo que me dice, el "if"%1"" no se reconoce...como podria hacerme un ejemplo de esto??

    Saludos! y Gracias por adelantado!!
    Wednesday, November 12, 2008 9:07 PM

Answers

  •  molpiiii Escribió:
    Buuuueeeno..a ver, he editado el .bat, quedando este asi:
    start "" "c:\Documents and Settings\cuenta simple\Mis documentos"
    if /i "%1" == "a" start "c:\Documents and Settings\cuenta simple\Mis documentos"

     

    Pues no: deberia ser:

     

    if /i "%1" == "a" start "" "c:\Documents and Settings\cuenta simple\Mis documentos"

    y a correr. Y con respecto al lanzamiendo de un programa o comando, no uses el start... (el star solo para abrir carpetas). Simplemente ponlo... (como el mshearts que has citado). Si está en el path lo encontrar, y si no lo está debes poner la ruta completa (c:\,,,,,,,\mshearts.exe) y encerrado entre comillas para soportar nombres largos. Pero sinplmente encerrado sin hacer el truco que ha comentado Ramon.

     

    Un saludo,

     

     

    Tuesday, November 18, 2008 10:00 AM

All replies

  • Anda.. que te voy a dar un capon. Tienes un manual completo para sistemas de nucelo NT (Y Vista y XP lo son) hecho por mi en:

    http://www.multingles.net/docs/jmt/comandos/comandos.html

    ¿te comes los espacion en blanco?... lo que tu quieres sería:

    if /i "%1" == "a" start "c:\Documents and Settings\cuenta simple\Mis documentos"

    NOTAS: el /i detras del if (con espacios en blanco!... quiere decir que no distinga de mayusculas / minusculas por lo que seria lo mismo "A" que "a".

    Le he puesto un start... ya que has puesto una carpeta, no un programa... y de esta forma te la abrirá. Y ademas lo he encerrado entrecomillas, esto debe hacerse siempre que el nombre de la carpeta o del programa contenga caracteres especiales... y el espacion en blanco entremedias es un caracter especial.

    Un saludo,
    Wednesday, November 12, 2008 9:53 PM
  • AAAAMMMMM voy a probarlo, de todas formas en el libro los espacios no se diferencian muy bien, es mas la gran mayoria de los comandos que he ido metiendo (muchos me han funcionado) ivan con todos los caracteres juntos...


    Bueno..a ver e copiado y pegado en la consola:

    if /i "%1" == "a" start "c:\Documents and Settings\cuenta simple\Mis documentos"

    Y no funciona..tengo que estar haciendo algo mal...bueno voy a revisar oootra vez el articulo y a ver si lo saco..si no esta noche, mañana fijo que lo saco...por motivos "huelguistas" xD, no vamos a ir a clase y ya aprovecho para estudiar que tengo examen el viernes y termino esto, para empezar con el "goto"

    Poor cierto, deberia de modificar la sintaxis del .bat?? tiene puesto esto:

    if"%1"=="A"mshearts

    Tendria que meterle los espacios no??

    Saludos!!
    Wednesday, November 12, 2008 10:05 PM
  • En la consola claro que no. Create un archivo con extension .bat o .cmd con el cuaderno de notas y ponlo allí..

    Y....

    if /i "%1" == "A" mshearts

    (suponiendo que el mshearts lo encuentre en el path, claro...)

    Un saludo,
    Wednesday, November 12, 2008 10:11 PM
  • Okk, pues como ya no me da tiempo (tengo que cerrar aplicaciones y demas para iniciar la virtual) mañana temprano que paso por casa de mi padre, vere a ver si sale y de paso, pongo a ver si algun dia de estos se baja eso que hay por el grupo de noticias que andais todos trasteando..por cierto, ya han creado unas cuantas .iso..yo estoy bajandome una de esas, espero que sea "verdadera" XD

     

    Saludos!

     

    Wednesday, November 12, 2008 10:31 PM
  • Bueno pues al final...nada, llevo intentandolo desde hace 2 dias y no lo he conseguido...creo que voy a volver a intentarlo, pero esta vez envez que "apunte" a una carpeta, lo hare para que vaya directamente al .bat!!

     

    Alguna sugerencia?¿ XD

     

    Saludos!!

     

    Friday, November 14, 2008 11:43 PM
  • Que si no te funciona... me lo dejes aqui... :-)

    Un saludo,
    Saturday, November 15, 2008 8:26 AM
  • No, si es que la misma sintaxis que me pusiste (con los espacios y demas) la puse en el .bat y luego en la consola y no funciono...

     

    Por cierto, hoy e puestol as additions al vista virtual y..se a jo*di*do xD, los iconos se ven borrosos (he podido ponerlos un poco mejor, poniendo la calidad del color al minimo)..por lo menos ya sale a internet..a otra cosa..ahora no me deja escribir en ese vista virtual, no hay ningun problema con el teclado ni nada, pero no escibe!.

    Estoypor desinstalarlo y volverlo a instlar, pero esta vez, meter el ultimate envezde la home que tengo puesta..

     

    Saludos!! 

     

    Saturday, November 15, 2008 9:38 PM
  • Oye... que esto de RFOG se pega... que me pareces un poco zarpas.. .:-)

    A ver, dejame aquia ese bat, con cortar y pegar... sin manipular...

    Un saludo,
    Sunday, November 16, 2008 11:09 AM
  • XD, bueno yo puse esto en el .bat

    if /i "%1" == "a" start "c:\Documents and Settings\cuenta simple\Mis documentos"


    y al guardarlo (por si sirve de algo) le puse:
    Nombre: mshearts.bat
    Tipo: documento .txt
    Codificacion: ansi

    Pooor cierto, no veas que jo*dienda que  me esta dando el
    Prefetch, me salto ayer el primer error en el w7...

    Saludos!

    Monday, November 17, 2008 9:03 AM
  • Ahora que recuerdo, si pones una carpeta SOLO... y no el nombre de un programa, para que se abra con start debes usar el nombre corto. Si se encuentra espacion en blanco no hace nada. Prueba solo el comando start desde una consola y lo veras...


    Y el w7... es pre-beta !!!... no esperes mucho... :-)

    Un saludo,

    • Proposed as answer by mariachy Thursday, April 02, 2009 3:26 PM
    Monday, November 17, 2008 2:48 PM
  •  molpiiii Escribió:
    y al guardarlo (por si sirve de algo) le puse:
    Nombre: mshearts.bat
    Tipo: documento .txt
    Codificacion: ansi
    Pregunta tonta: ¿Antes de ejecutar el archivo le cambias la extensión a .BAT o .CMD, verdad?

    Por otro lado, la sutileza a la hora de usar las comillas con Start, que Jose resuelve usando el nombre corto de la ruta si está disponible*, se relaciona con el modo en que Start.exe analiza sus parámetros. Para eludir el inconveniente, añade otra cadena entre comillas, vacía o no, delante de la ruta o programa para ejecutar:
    start "" "C:\Users\fulanito\Pictures\Mi canario Pavarotti"

    * Véase documentación sobre NtfsDisable8dot3NameCreation. Este valor de configuración, en estado activo, evita la nueva generación de nombres cortos alternativos en volúmenes NTFS (los nombres existentes se conservan).
    How to Disable the 8.3 Name Creation on NTFS Partitions

    Tuesday, November 18, 2008 2:23 AM
  •  Ramón Sola Escribió:
    Para eludir el inconveniente, añade otra cadena entre comillas, vacía o no, delante de la ruta o programa para ejecutar:
    start "" "C:\Users\fulanito\Pictures\Mi canario Pavarotti"

     

    c*ño!... :-)  esto no me lo sabía yo... buen TIP... :-)

     

    Un saludo,

    Tuesday, November 18, 2008 7:33 AM
  • Buuuueeeno..a ver, he editado el .bat, quedando este asi:

    start "" "c:\Documents and Settings\cuenta simple\Mis documentos"
    if /i "%1" == "a" start "c:\Documents and Settings\cuenta simple\Mis documentos"

    He puesta tambien (para ver que pasaba) cambiar la primera ruta, de modo que apuntase directamente al .bat es decir:

    start "" "c:\Documents and Settings\cuenta simple\Mis documentos
    \mshearts

    El resultado a sido que al ejecutarlo...se a creado un bucle y han empezado a aparecer consolas xD

    De momento, el "mshearts" he conseguido que funcione simplemente haciendo:
    start msheatrs.exe

    La verdad que el comando if lo encuentro algo "extraño" xD, lo que voy a hacer es buscar mas informacion sobre el....
    De todas formas, voy a seguir dandole a este comando y ya esta noche empiezo con el goto

    Aun asi, si proponeis algun ejemplo o "ejercicio simple" intentare sacarlo!!

    Saludos!!
    Tuesday, November 18, 2008 8:32 AM
  •  molpiiii Escribió:
    Buuuueeeno..a ver, he editado el .bat, quedando este asi:
    start "" "c:\Documents and Settings\cuenta simple\Mis documentos"
    if /i "%1" == "a" start "c:\Documents and Settings\cuenta simple\Mis documentos"

     

    Pues no: deberia ser:

     

    if /i "%1" == "a" start "" "c:\Documents and Settings\cuenta simple\Mis documentos"

    y a correr. Y con respecto al lanzamiendo de un programa o comando, no uses el start... (el star solo para abrir carpetas). Simplemente ponlo... (como el mshearts que has citado). Si está en el path lo encontrar, y si no lo está debes poner la ruta completa (c:\,,,,,,,\mshearts.exe) y encerrado entre comillas para soportar nombres largos. Pero sinplmente encerrado sin hacer el truco que ha comentado Ramon.

     

    Un saludo,

     

     

    Tuesday, November 18, 2008 10:00 AM
  • amm... bueno yo hace poco estoy incurcionando en lenguage batch... por lo menos mi en windows wp me parece que primero deviera manejarse de la siguiente manera:

    primero hay que definir una variable con el comando set y despues preguntar con el comando if si es que la variable que se ingreso es igual a la palabra clave que vamos a definir para cumplir la instruccion

     


    @echo off
    :inicio
    cls
    set /p variable=introduzca palabra clave:
    if %variable% equ abrir start "c:\documents and settings\administrador\mis documentos"
    if %variable% neq abrir goto inicio

     

     

    al guardar esto en en un archivo.bat deveria hacer lo siguiente:

    deviara abrirse una ventana con la pregunta introduzca palabra clave:
    (en este caso la palabra clave es abrir), cuando el programa vea la palabra abrir va a ejecutar el comando start c:\documents and settings\administrador\mis documentos y cuando la palabra sea diferente a (abrir) deve volver a preguntar osea volver al inicio del programa

    yo lo uso asio y lo uso bastante... y lo otro para usar el comando if es abrir simbolo de sistema he ingresar lo siguiente

    if/?

    o

    help if

    ahi sale la informacion suficiente como para entender como funciona el comando y como es la sintaxis


    espero sirva de algo...
    un saludo
     

    Thursday, April 02, 2009 3:27 PM
  •  

    if %variable% equ abrir start "c:\documents and settings\administrador\mis documentos"
    if %variable% neq abrir goto inicio

     

     

    Lo anterior te fallaría si yo introduzco por ejemplo:

    "abrir archivo"

    Como apunte, siempre se debe preguntar con los textos entrecomillados para evitar fallos en caso de poner espacios enb blanco en la respuesta, y se debe poner ademas el modificador /i para que no distinga entre mayusculas y minusculas. Es decr:

    if /i "%variable%" equ "abrir" .... etc..

    Un saludo,

    Jose Manuel Tella Llop news://jmtella.com
    Saturday, April 11, 2009 6:43 PM