2016-10-25 3 views
0

Идея заключается в том, что в одной папке есть два файлаАвтоматизация нагрузки .prg файл, запустить его с предопределенными переменной

test.csv 
test.prg 

Я хотел бы работать с BAT-файл (или .vbs) файл test.prg с переменной «2510».

Он будет автоматически загружать в Визуальный Fox Pro (здесь я не знаю, как запустить скрипт автоматически с физически нажмите на восклицательный знак) и визуальная лиса про следует использовать переменную из файла .bat/.vbs в 2510.

1) Open test.prg 
2) Load VFP 
3) Use pre defined variable from .bat/.vbs 
4) Run script (automatically) 
5) close VFP 

поскольку это ежедневные задания, и я пытаюсь упростить настолько, насколько это возможно (в настоящее время я знаю только, как упростить с помощью Cmd/.bat и VBS)

ответ

2

Если я правильно понял, вы хотите запустить файл 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 на дату получения формы).

1

это действительно непонятно, что вы пытаясь сделать. Однако из VFP я создал простой проект и программу, которые могут вам помочь.

Запустить VFP. В окне команды введите создать проект MyTest [enter]

перейдите на вкладку «Код», а затем нажмите кнопку «Создать». Вставьте следующий фрагмент кода

LPARAMETERS DOSParm1, DOSParm2, DOSParm3, DOSParm4 

MESSAGEBOX("Parm1: " + TRANSFORM(DOSParm1) + CHR(13)+CHR(10); 
      + "Parm2: " + TRANSFORM(DOSParm2) + CHR(13)+CHR(10); 
      + "Parm3: " + TRANSFORM(DOSParm3) + CHR(13)+CHR(10); 
      + "Parm4: " + TRANSFORM(DOSParm4) + CHR(13)+CHR(10)) 

RETURN 

Сохраните программу MyTest.prg, а затем нажмите на сборки для проекта, чтобы создать исполняемый файл. Теперь у вас есть простой EXE-файл, который принимает до 4 параметров из команды dos или других методов (vbs). Вы можете изменить фактический VFP, чтобы действовать на любые переменные, которые вам нужны, но я просто имею их в качестве вывода вывода сообщений. Если параметры не заданы, значения по умолчанию будут логичными .F. (Ложь)

Чтобы проверить из командной строки DOS, вы можете сделать что-то вроде

MyTest oneParm anotherParm 3rd last 

и вы получите окно сообщения, отображающее эти 4 строки параметров.

Если вы пропустите параметры, никаких проблем.

MyTest Only TwoParms 

Опять же, код может быть изменен, чтобы сделать то, что вам нужно с «2510» ссылки на переменную и действовать соответствующим образом.