将参数从 BAT 文件或 VBS 传递到 Visual Fox Pro(.prg 文件)
Pass parameters from BAT file OR VBS to Visual Fox Pro (.prg files)
我有很多 .prg 文件,目前我每天都在使用它们。我必须手动输入的参数之一是今天的日期。
想法是,例如,日期将作为 .bat 或 .vbs 文件中的参数,当我 运行 bat 或 vbs 时...它会将参数传递给 .prg 文件并执行带有设置参数的 .prg 文件。
或者类似这样的东西...在 CMD
set date=20161019 do "n:\xxx\xxxx\xxx\xx\xx\xxxxx\ccc_ass.prg" date
只需 运行 VFP9.EXE 加上课程名称和你的日期。
"c:\Program Files (x86)\Microsoft Visual FoxPro 9\vfp9.exe" myprogram mydate
但是参数将始终作为字符串传递,因此您的程序必须将其转换为正确的类型。
您可以简单地将日期作为字符串传递(参数始终作为字符串传递)。这样做时,请始终使用不受日期设置影响的格式,并且会以相同的方式进行解释。 IOW 将其设为 yyyy/MM/dd 格式。即:
-.prg
lparameters theDateStr
local ldDate
if !empty( m.theDateStr )
ldDate = cast( '^' + m.theDateStr as Date)
else
ldDate = {}
endif
*...
并这样称呼它(2016 年 10 月 23 日):
vfp.exe yourprogram.prg 2016/10/23
OTOH,为什么不编辑 BAT 文件并通过 BAT 调用,为什么不编辑 prg 本身,或者让 prg 从外部源获取日期。
我有很多 .prg 文件,目前我每天都在使用它们。我必须手动输入的参数之一是今天的日期。
想法是,例如,日期将作为 .bat 或 .vbs 文件中的参数,当我 运行 bat 或 vbs 时...它会将参数传递给 .prg 文件并执行带有设置参数的 .prg 文件。
或者类似这样的东西...在 CMD
set date=20161019 do "n:\xxx\xxxx\xxx\xx\xx\xxxxx\ccc_ass.prg" date
只需 运行 VFP9.EXE 加上课程名称和你的日期。
"c:\Program Files (x86)\Microsoft Visual FoxPro 9\vfp9.exe" myprogram mydate
但是参数将始终作为字符串传递,因此您的程序必须将其转换为正确的类型。
您可以简单地将日期作为字符串传递(参数始终作为字符串传递)。这样做时,请始终使用不受日期设置影响的格式,并且会以相同的方式进行解释。 IOW 将其设为 yyyy/MM/dd 格式。即:
-.prg
lparameters theDateStr
local ldDate
if !empty( m.theDateStr )
ldDate = cast( '^' + m.theDateStr as Date)
else
ldDate = {}
endif
*...
并这样称呼它(2016 年 10 月 23 日):
vfp.exe yourprogram.prg 2016/10/23
OTOH,为什么不编辑 BAT 文件并通过 BAT 调用,为什么不编辑 prg 本身,或者让 prg 从外部源获取日期。