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


 


Tema destacado: Deseas probar algunas mejoras a la interfaz del foro? Prueba cake! acerca de


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderador: Eleкtro)
| | |-+  Error al ejecutar progrma desde un bat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error al ejecutar progrma desde un bat  (Leído 587 veces)
ADV

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Error al ejecutar progrma desde un bat
« en: 2 Mayo 2017, 21:59 »

Hola que tal soy nuevo  espero poder ser claro y conciso para que me puedan ayudar en la corrección de este bat

Tengo un programa que con solo seleccionar un archivo .zip este abre su determinado programa para ejecutarlo.El problema que tengo es que debo colocando la dirección donde tengo los progrmas ejecutables,por daros un ejemplo

El programa Alfa solo puede ejecutar archivo 1alfa.zip
Esta es la direccion
C:\contador\Alfa\archivo\.*zip
C:\contador\Alfa\Alfa.exe

El programa Beta solo puede ejecutar archivos 1beta.zip
Esta es la direccion
C:\contador\Beta\archivo\.*zip 
C:\contador\Beta\Beta.exe

Entonces tal vez  si lanzaba por medio de un bat para que me pudiera ejecutar los progrmas alfa o beta, solo con seleccionar el archivo .zip. Este es el bat que se usa para poder llamar a a determinado programa con su archivo .zip

set ruta=%1%
set ruta=%ruta:~1,16%
if %ruta%==C:\contador\Alfa C:\contador\Alfa\Alfa.exe %1%
if %ruta%==C:\contador\Beta C:\contador\Beta\Beta.exe %1%


Lo extraño es que algunos amigos si les funciona pero usan windows ms dos, 98, mientras que yo uso windows 8, busque en internet y me tope que algunos comandos de bat solo funcionan en wind 98, 2000 y xp. Sera que ese podra ser el problema?????
Saludos.................


En línea

Eleкtro
Novato Astral y
Moderador Global
***
Conectado Conectado

Mensajes: 8.831


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Error al ejecutar progrma desde un bat
« Respuesta #1 en: 2 Mayo 2017, 23:35 »

El código actual que tienes es muy propenso a poder producir un error de sintaxis en el futuro por la ausencia de agrupación de comandos a la derecha de las condicionales. Es mejor que expandas la variable de argumento %1 y encierres debidamente todas las expresiones entre comillas dobles y uses los operadores de agrupación de comandos correspondientes.

Así te debería funcionar sin problemas:

Código
  1. @Echo Off
  2. Set "dir=%~dp1"
  3. Set "dir=%dir:~0,16%"
  4. If /I "%dir%" EQU "C:\contador\Alfa\" (Start /B "Alfa" "%dir%\Alfa.exe" "%~f1")
  5. If /I "%dir%" EQU "C:\contador\Beta\" (Start /B "Beta" "%dir%\Beta.exe" "%~f1")

PD: La validación de sintaxis entre versiones antiguas de Windows es algo distinta.

¡Saludos!


« Última modificación: 2 Mayo 2017, 23:44 por Eleкtro » En línea


ADV

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Error al ejecutar progrma desde un bat
« Respuesta #2 en: 5 Mayo 2017, 19:20 »

El código actual que tienes es muy propenso a poder producir un error de sintaxis en el futuro por la ausencia de agrupación de comandos a la derecha de las condicionales. Es mejor que expandas la variable de argumento %1 y encierres debidamente todas las expresiones entre comillas dobles y uses los operadores de agrupación de comandos correspondientes.

Así te debería funcionar sin problemas:

Código
  1. @Echo Off
  2. Set "dir=%~dp1"
  3. Set "dir=%dir:~0,16%"
  4. If /I "%dir%" EQU "C:\contador\Alfa\" (Start /B "Alfa" "%dir%\Alfa.exe" "%~f1")
  5. If /I "%dir%" EQU "C:\contador\Beta\" (Start /B "Beta" "%dir%\Beta.exe" "%~f1")

PD: La validación de sintaxis entre versiones antiguas de Windows es algo distinta.

¡Saludos!

Gracias  amigo me ha funcionado al 100%, no cuento con mucho conocimiento  en lenguaje de bat, pero buscando en esta pagina y estudiando y poco he podido aprender un poco, si tubieras un poco de tiempo me podrías explicar estas lineas de color azul
Set "dir=%~dp1"

If /I "%dir%" EQU "C:\contador\Alfa\" (Start /B "Alfa" "%dir%\Alfa.exe" "%~f1")

Es que  en el caso de dp1 no logro poder apreciar como funciona en la linea del if al igual que  "%~f1", /b.

Y de nuevo gracias
Saludos....
En línea

Eleкtro
Novato Astral y
Moderador Global
***
Conectado Conectado

Mensajes: 8.831


El sentido común es el menos común de los sentidos


Ver Perfil
Re: Error al ejecutar progrma desde un bat
« Respuesta #3 en: 5 Mayo 2017, 20:29 »

El valor de la variable de argumento %1, en este caso sería la ruta relativa o absoluta del archivo que le pasas al bat, por ejemplo: "C:\carpeta\archivo.ext" (con las comillas incluidas)

"d" (de "drive") es un modificador que expande el valor a la letra de unidad. ej. de: "C:\carpeta\archivo.ext" a: "C:"
"p" (de "path") es otro modificador que expande el valor a la ruta del directorio, sin la letra de unidad. ej. de: "C:\carpeta\archivo.ext" a: "\carpeta\"
Si combinamos los modificadores "d" y "p" tal que así: %~dp1 -obtendremos la ruta del directorio, con la letra de unidad. ej. de: "C:\carpeta\archivo.ext" a: "C:\carpeta\"

"f" (de "fullpath") es otro modificador que expande el valor a la ruta absoluta. ej. de (una ruta relativa): ".\carpet~1\archiv~1.ext" a: "C:\carpeta\archivo.ext"

Existen varios más modificadores de variable, puedes escribir el siguiente comando en la CMD para verlos todos:
Código
  1. FOR /?

¡Saludos!
« Última modificación: 5 Mayo 2017, 20:36 por Eleкtro » En línea


Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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