如何让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环境下运行通过。