Если я правильно понял, вы хотите запустить файл prg с изменяющимися параметрами, и вы хотите изменить параметр в вызывающем .bat или .vbs файле. Если это то, что вы хотите сделать, то вы могли бы просто содержимое файла биты, как:
cd "c:\My Folder"
"c:\Program Files (x86)\Microsoft Visual Foxpro 9\vfp9.exe" test.prg 2510
и ваш PRG будет работать с этим параметром. Имейте в виду, что параметры, переданные из командной строки, всегда имеют тип символьных данных.
Однако есть более простой способ. Как вы это сделаете, вы должны отредактировать файл .BAT, сохранить его, а затем дважды щелкнуть, чтобы выполнить. Вы можете создать исполняемый VFP вместо этого, в командном окне (предполагается, что test.prg находится в C: \ My Folder '):
set default to ('c:\My Folder')
build project MyTest from 'test.prg'
build exe MyTest from 'MyTest.pjx'
, и вы бы mytest.exe в этой папке.Тогда содержимое вашего BAT-файла будет:
cd "c:\My Folder"
MyTest 2510
Это по-прежнему громоздко. Вам нужно отредактировать файл .BAT, изменить параметр, сохранить и дважды щелкнуть его. Сделайте это намного проще:
В вашем test.prg вместо получения параметра из командной строки задайте значение параметра и выполните процесс! Это полностью устраняет необходимость в BAT-файле. Затем вы просто создаете ярлык на рабочем столе. Всякий раз, когда вы дублируете этот ярлык, он запрашивает параметр, а затем выполняет обработку с этим значением параметра и завершает работу. Содержание такого test.prg будет выглядеть так:
_screen.Visible = .T.
LOCAL cInput
cInput = INPUTBOX("What is parameter value?", "Get parameter value", "2510", 5000, '', 'Cancelled')
DO case
CASE m.cInput == ''
? 'Input timed out'
CASE m.cInput == 'Cancelled'
? 'Cancelled'
CASE m.cInput == '0' Or VAL(m.cInput) != 0
Process(VAL(m.cInput))
OTHERWISE
? 'Parameter is not numeric'
ENDCASE
QUIT
PROCEDURE Process(tnparameter)
? 'Processing with parameter =', m.tnParameter
Endproc
Кроме того, вместо InputBox(), которая возвращает значение символа, как и параметры командной строки, вы можете получить значение (ы) с помощью формы с их предполагаемые типы (т.е.: datetimepicker на дату получения формы).