PDA

Ver la Versión Completa : [Sintaxis] Ejecutar comando DOS


Ciro
3 de febrero de 2016, 04:17
Por favor solicito ayuda.
Necesito dentro de un programa powercobol version 9, ejecutar otro programa power que está en otro directorio, por lo tanto necesito hacer el cambio de ruta.
Probe con estas dos instrucciones y no funciona.

INVOKE CmDDE1 "Execute" USING "CD \sydwin\DAT\CONI"
INVOKE POW-SELF "Execute" USING "CD \sydwin\DAT\CONI".


Gracias.

Gatomalo
3 de febrero de 2016, 06:02
INVOKE POW-SELF "Execute" USING "D:\sydwin\DAT\debug\CONI.exe"
debes poner la ruta donde se encuentra el exe lo de arriba solo es un ejemplo.

Ciro
4 de febrero de 2016, 16:46
Gracias amigo gatomalo y perdone que no me supe explicar.

Lo que necesito es ejecutar una aplicación para dos empresas teniendo una sola entrada.
Que entre a empresa 1, y sin salirme poder ir al directorio de la empresa 2 y ejecutar la empresa 2, con los datos de la empresa 2 que se encuentran fisicamente en otra ruta.

Con la instrucción que Ud, me da, busca en la ruta el programa y ejecuta el .exe
(empresa 2) pero no cambia fisicamente de directorio, por lo tanto toma los datos del directorio de la empresa1.

Necesito si hay forma de hacer cambio de directorio, desde la aplicación, (ejectutar comandos MS-DOS: cd, dir, rename etc.) Muchas gracias.

Kuk
4 de febrero de 2016, 18:24
Ciro, para estas cosas no es la mejor solución lo que quieres hacer. Porque controlar en cada momento dónde te encuentras de manera implícita puede llevar a un desastre...

Se puede hacer, por ejemplo via "GetFileName" y POW-CDCHANGEDIR (que es la opción por defecto) o con "GetFolderName" con NoChangeCurrent = POW-FALSE, pero no te lo aconsejo.

Lo que yo hago para este tipo de cosas es indicar la ruta para cada fichero con un prefijo de la ruta en una variable global. Así puedo acceder a diferentes directorios de manera controlada (explicita). Además, no tengo el riesgo de guardar en sitios diferentes (por error, es decir por no saber o controlar bien dónde me encuentro en cuanto al directorio) ficheros temporales, de configuración y demás historias...

Hrmcobol
4 de febrero de 2016, 19:05
De Acuerdo con Kuk, es lo mas saludable, puedes tener un archivo/tabla con las rutas de cada empresa.
Saludos

Ciro
6 de febrero de 2016, 02:47
Esa solución me parece excelente, voy a desarrollarla así. Muchas gracias a todos.

Roger
6 de febrero de 2016, 06:56
Hola amigo yo uso de esta manera
SELECT VACUNA ASSIGN TO WF-VACUNA ORGANIZATION INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS VACUNA-KEY
LOCK MODE IS AUTOMATIC WITH LOCK ON RECORD
FILE STATUS IS FS-04.

luego muevo a la variable WF-VACUNA en este caso la ruta de esta forma

move "d:\archivos\debug\VACUNA.DAT" TO WF-VACUNA

de esta forma lee y graba donde le indique la ruta.