如何让Foxpro生成带命令行参数的EXE文件 张庆 1997-01-01   怎样让Foxpro编译、链接生成的EXE文件带命令行参数,在一般的参考书中未见介绍。本人经过摸索,寻找出两种方法,供读者朋友借鉴。 #2  一、利用DOS的环境变量向Foxpro生成的EXE文件传递参数。   我们知道,Foxpro的函数Getenv()用来获取在DOS下定义的某环境变量的值。利用这一点,我们在DOS下将Foxpro需要的命令行参数先赋给某DOS环境变量(不要与DOS系统自用的Path、Temp、Comspec、Prompt等重名),然后在Foxpro生成的EXE文件中通过Getenv()函数获取参数的值即可。后附程序一Setpara.bat首先设置环境变量V1和V2,程序二Getpara.prg检测这两个参数的值。读者可将Getpara.prg用Foxpro编译后验证此程序。用Setpara.bat程序启动,如:C:\FOX>Setpara p1 P2,屏幕显示:   命令行参数1=p1   命令行参数2=P2 #2  程序一:   Setpara.bat:   @echo off   set v1=%1   set v2=%2   getpara.exe   rem Rlease V1,V2   set v1=   set v2= #2  程序二:   Getpara.prg:   set talk off   cmdpara1=getenv("v1")   cmdpara2=getenv("v2")   @10,10 SAY "命令行参数1="+cmdpara1   @12,10 SAY "命令行参数2="+cmdpara2   @14,10 say "Press a key Go on."   ink=inkey(0)   return #2  二、其实,Foxpro的.prg命令文件本身就可获得父进程传递的参数,当上级调用者为DOS时,这个特征照样有效,只是在参数传递形式上稍有不同。如程序三Getpara2.prg,经过编译链接后在DOS下运行:   C:\FOX>getpara2 Para1 para2   屏幕显示:   参数1=Para1   参数2=para2 #2  程序三:   Getpara2.prg:   para v1,v2   set talk off   ?"参数1=",v1   ?"参数2=",v2   ink=inkey(0)   return #3  注意,   以上二、三程序如果在Foxpro集成环境下运行,要用不同的形式,如程序三在Foxpro命令窗口中须以   Do getpara2 with Para1 Para2   的形式运行。   以上程序在COMPAQ presario 460型486SX/66机器上,Foxpro 2.5 for DOS环境下运行通过。