Я начинающий программист/айтишник в семейном бизнесе по финансированию недвижимости. Короче говоря, около 25-30 лет назад мы создали прикладную систему на основе dBASE III для отслеживания всех учетных записей клиентов. Стоимость перехода на современную систему была бы астрономической, и поскольку я умею программировать с достаточной эффективностью, мы сохраняем ее. Все в порядке, но все используют одну пользовательскую версию на разных рабочих станциях. Я хочу установить администратора dBASE и перейти к сетевому окружению. Я подумал, что, приступая к этому, я буду немного не в своей тарелке, но смогу справиться с этим. В настоящее время я запускаю это в системе Windows XP, без подключения к Интернету, все просто вместе.
Я получил образ установочного диска от vetusware. Я смонтировал образ через виртуальную дискету. В командной строке я перехожу к диску и следую инструкциям из руководства:
- Вставьте системный диск №1 в дисковод А.
- Измените диск по умолчанию на A, набрав A:[return]
Пока все хорошо... У меня есть подсказка.
Затем введите: A> INSTALL C: DBA
Я набираю «INSTALL C: DBA», он запускает «INSTALL.BAT», найденный на диске, но быстро сообщает «goto был неожиданным в это время». и возвращает меня к подсказке A.
Я опубликую текст командного файла ниже. После выполнения он отображает верхний бит «эхо» текста, заканчивающегося «... предыдущей версией dBASE». Но затем следующая строка — «переход был неожиданным…»
Кажется, что-то не так с пакетным файлом INSTALL, и я ничего не делаю... Я знаю, что это ошибка пакетного файла, а не ошибка внутри программы. Также странно, что программа упоминает этот DBA.COM, и его нигде нельзя найти ни на одном из дисков... Любая помощь или руководство, которые кто-либо может предоставить, будут очень признательны.
Большое спасибо,
Крис
echo off
cls
echo
echo dBASE III PLUS VERSION 1.1
echo HARD DISK INSTALLATION
echo
echo You can copy dBASE III PLUS to your hard disk by following
echo these installation instructions. You can also use these
echo instructions to install dBASE ADMINISTRATOR.
echo
echo If you want to save a previously installed version of dBASE,
echo uninstall it using that version's UNINSTAL program.
echo
echo If you choose not to save a previous version, install dBASE
echo III PLUS Version 1.1 into the same directory. This will auto-
echo matically erase the previous version of dBASE.
echo
if "%1==" goto Helpinst
for %%f in (C:,c:,D:,d:,E:,e:,F:,f:,G:,g:,H:,h:,Y:,y:) do if %1.==%%f. goto START
for %%f in (I:,i:,J:,j:,K:,k:,L:,l:,M:,m:,N:,n:,O:,o:,P:,p:,Z:,z:) do if %1.==%%f. goto START
for %%f in (Q:,q:,R:,r:,S:,s:,T:,t:,U:,u:,V:,v:,W:,w:,X:,x:) do if %1.==%%f. goto START
goto BADDRIVE
:START
if "==%2" goto DBASE
if %2.==DBA. goto DBA
if %2.==dba. goto DBA
goto Helpinst
:DBASE
echo dBASE III PLUS will be installed on drive %1
echo
yn Y N 30 Do you want to continue (Y/N)?
if ERRORLEVEL 1 goto DBASE1
goto END
:DBASE1
if exist dbase.lod goto ID
if exist %1dbase.exe goto ErrExist
if exist %1dba.com goto ERREXT
if not exist id.exe goto MISS
%1
a:id /S
a:
echo Copying files to drive %1 . . .
echo
copy dbase.exe %1
copy dbaseinl.ovl %1
copy dbase.msg %1
if not exist %1config.db copy config.db %1
if not exist %1config.sys copy config.sys %1
:SYS2
echo
echo Insert the dBASE III PLUS System Disk #2 in drive A.
echo
pause
if not exist dbase.ovl goto SYS2
echo
echo Copying files to drive %1 . . .
echo
copy dbase.ovl %1
copy help.dbs %1
copy assist.hlp %1
if not exist %1dbase.ovl goto ErrDbase
if not exist %1dbase.exe goto ErrDbase
if not exist %1dbase.msg goto ErrDbase
if not exist %1dbaseinl.ovl goto ErrDbase
echo
echo dBASE III PLUS has been successfully installed.
goto End
:DBA
echo dBASE ADMINISTRATOR will be installed on drive %1
echo
yn Y N 30 Do you want to continue (Y/N)?
if ERRORLEVEL 1 goto Ad1
goto END
:Ad1
if exist dba.lod goto GETSYS1
if exist %1dba.com goto ERREXT
if exist %1dbase.exe goto ErrExist
if not exist dbaseinl.ovl goto GETSYS1
echo
echo Copying files to drive %1 . . .
echo
copy help.dbs %1
echo
:AD2
echo
echo Insert the Administrator #1 disk in drive A
echo
pause
echo
if not exist dba.lod goto AD2
:AD3
if exist installh.sg3 goto INITDBA
if not exist idlan.exe goto MISS
%1
a:idlan /M
a:
installh p=a t=%1
if ERRORLEVEL 1 goto ErrDBA
echo
copy dba.lod %1\dbnetctl.300
copy dbase.msg %1
copy protect.exe %1
copy assist.hlp %1
echo
:Ad4
echo
echo Insert the Administrator #2 disk in drive A
echo
pause
echo
if not exist dba.ovl goto AD4
echo Copying files to drive %1 . . .
echo
copy dba.ovl %1
copy adduser.com %1
echo
echo dBASE ADMINISTRATOR has been successfully installed
echo
echo One user may now run dBASE ADMINISTRATOR. To add more users,
echo run the ADDUSER program. The ADDUSER program is located in
echo the directory in which dBASE ADMINISTRATOR is installed.
echo
goto END
:Helpinst
echo You entered the command incorrectly. The correct syntax is:
echo
echo "INSTALL <drive:>" To install dBASE III PLUS.
echo
echo "INSTALL <drive:> DBA" To install dBASE ADMINISTRATOR.
echo
echo Install is aborted.
goto End
:ErrExist
echo
echo dBASE III PLUS already exists in the destination drive.
goto ErrUnst
:ERREXT
echo
echo dBASE ADMINISTRATOR already exists in the destination drive.
:ErrUnst
echo
echo Install is aborted.
goto End
:BADDRIVE
echo
echo Invalid drive letter specified. Install is aborted.
goto Helpinst
:ErrDbase
echo
echo dBASE III PLUS is not installed. Install is aborted.
goto END
:MISS
echo
echo Your system disk has missing files. Install is aborted.
echo
goto DELFILE
:ID
echo
echo dBASE III PLUS has not been identified. Please run ID.
echo
goto END
:INITDBA
echo
echo dBASE ADMINISTRATOR has not been identified. Please run IDLAN.
echo
goto DELFILE
:GETSYS1
echo
echo Please use the dBASE III PLUS System Disk #1 to run the installation.
echo Install is aborted.
echo
goto END
:ErrDBA
echo
echo dBASE ADMINISTRATOR installation has been aborted.
echo
:DELFILE
if exist %1help.dbs del %1help.dbs
:End
echo off
для отладки! 3. Для сравнений с учетом регистра используйтеif /I
. 4. Нативной командыyn
нет, значит, это внешний инструмент? в противном случае проверьте командуchoice
. - person aschipfl   schedule 20.04.2016command
и следуйте инструкциям. - person Ross Ridge   schedule 20.04.2016echo on
, чтобы увидеть, в какой строке пакетный файл не работает.if "==%2" goto DBASE
определенно не правильно. Я предполагаю, что эта строка должна бытьif ""=="%~2" goto DBASE
, т.е. проверить, не передан ли второй аргумент в пакетный файл при его вызове, и в этом случае продолжить на меткеDBASE
. - person Mofi   schedule 20.04.2016INSTALLH
. Либо ваши изменения в сценарии установки нарушили сценарий, либо вы нарушили схему защиты от копирования и/или управления лицензиями приложения. - person Ross Ridge   schedule 20.04.2016