2017-01-12 3 views
0

Я пытаюсь создать пакетный файл, который скопирует Front Access 2016 на верхнюю часть Desk. Я попытался понять пример ниже:пакетный файл для распространения Access front end

@echo Please wait while the version of the database you requested is updated to your desktop. 
    @echo off 
    @echo %username% 
    if not EXIST "C:\MyApplication\Profiles\%username%" GoTo LocalFileFolderWasNotThere 
    xcopy /Q /Y "\\MySharePath\MyNetworkFolder\Admin\MyDivision\MyApplication\MyApplication_JohnGault.accdb" "C:\MyApplication\Profiles\%username%\*.*" 
    REM TYPE NUL | choice /c:delay /td,5 >NUL 
    Start /max "C:\Program Files (x86)\Microsoft Office\OFFICE15\MSACCESS.EXE" "\\MySharePath\MyNetworkFolder\Admin\MyDivision\MyApplication\Profiles\%username%\MyApplication_JohnGault.accdb" 
    exit 
    :LocalFileFolderWasNotThere 
    @echo Creating You A New Profile 
    MD "C:\MyApplication\Profiles\%username%" 
    xcopy /Q /Y "\\MySharePath\MyNetworkFolder\Admin\MyDivision\MyApplication\REgulatory_JohnGault.accdb" "C:\MyApplication\Profiles\%username%\*.*" 
REM TYPE NUL | choice /c:delay /td,5 >NUL 
Start /max "C:\Program Files (x86)\Microsoft Office\OFFICE15\MSACCESS.EXE" "C:\MyApplication\Profiles\%username%\REgulatory_JohnGault.accdb" 
exit 

Не могли бы вы объяснить, что сделано на следующем шаге?

REM TYPE NUL | choice /c:delay /td,5 >NUL 

    Start /max "C:\Program Files (x86)\Microsoft Office\OFFICE15\MSACCESS.EXE" "\\MySharePath\MyNetworkFolder\Admin\MyDivision\MyApplication\Profiles\%username%\MyApplication_JohnGault.accdb" 
    exit 

Этот код относится к передней/задней части приложения здесь? Я предположил, что

\\MySharePath\MyNetworkFolder\Admin\MyDivision\MyApplication\MyApplication_JohnGault.accdb

был ссылающийся на передний конец, нет?

Если кто-то может объяснить, что происходит на каждом этапе, было бы весьма полезно.

спасибо.

+0

Не прямой ответ, но альтернативный и надежный метод: [Развертывание базы данных Access 2007 с SQL back end для Citrix для нескольких пользователей] (http://stackoverflow.com/questions/34097886/deploy-access-2007-database-with-sql-back-end-to - citrix-for-multiple-users/34150736 # 34150736) – Gustav

ответ

1

REM TYPE NUL | choice /c:delay /td,5 >NULничего не делает; это просто комментарий (читай help rem):

d:\bat> rem /? 
Records comments (remarks) in a batch file or CONFIG.SYS. 

REM [comment] 

TYPE NUL | choice /c:delay /td,5 >NULничего не делает; он возвращает ошибку :

d:\bat> TYPE NUL | choice /c:delay /t 5 >NUL 
ERROR: Invalid syntax. /T can be specified only when /D is specified. 
Type "CHOICE /?" for usage. 

TYPE NUL | choice /c:delay /d d /t 5 >NULничего не делает; хотя это синтаксически корректно возвращает ошибку:

d:\bat> TYPE NUL | choice /c:delay /d d /t 5 >NUL 

ERROR: The file is either empty or does not contain the valid choices. 

choice /c:delay /d d /t 5 >NULмолча ждет в течение 5 секунд (период времени, определенный /T значением параметра) или до D, E, L, A или Y нажата.

Ресурсы (обязательное чтение):

Update ответить другая часть вопроса о start command:

Запуск программы, командного или командного сценария (открывается в новом окне.)

Синтаксис

START "title" [/D path] [options] "command" [parameters] 

выше синтаксиса лексемы, в исходном коде:

  • START - имя для Windows cmd внутренней команды.
  • "title" - отсутствует, регулируется ниже: Всегда включать TITLE это может быть простой строкой как "My Script" или просто пустые кавычки "". Согласно документации Microsoft, заголовок является необязательным, но в зависимости от других выбранных опций у вас могут быть проблемы, если они опущены.
  • [/D path] - опция, правильно опущено,
  • [options] - /макс силы открытие MSACCESS.EXE в развернутом окне,
  • "command" - полный путь к MSACCESS.EXE - чтобы гарантировать, что следующий файл базы данных будет открыт в MSACCESS.EXE, даже если он может быть связан с другим заявкой по умолчанию,
  • [parameters] - полный путь UNC-пути к Access 2007/2010 database file (.accdb type) будет открыт с использованием MSACCESS.EXE.

Используйте следующий исправленный синтаксис:

Start "" /max "C:\Program Files (x86)\Microsoft Office\OFFICE15\MSACCESS.EXE" "\\MySharePath\MyNetworkFolder\Admin\MyDivision\MyApplication\Profiles\%username%\MyApplication_JohnGault.accdb" 

Если MSACCESS.EXE в настоящее время связаны в качестве приложения по умолчанию для .accdb типа файла, то следующей команды должно хватить:

Start "" /max "\\MySharePath\MyNetworkFolder\Admin\MyDivision\MyApplication\Profiles\%username%\MyApplication_JohnGault.accdb" 
+0

Спасибо, пожалуйста, уточните, что такое 'C: \ Program Files (x86) \ Microsoft Office \ OFFICE15 \ MSACCESS.EXE" "\\ MySharePath \ MyNetworkFolder \ Admin \ MyDivision \ MyApplication \ Profiles \% username% \ MyApplication_JohnGault.accdb', это задний конец? Зачем нужен MSACCESS.EXE? – user3781528

+0

@ user3781528 ответ обновлен. – JosefZ

+0

@ user3781528 - Это просто открытие MyApplication_John Gault.accdb с использованием MSACCESS.EXE и максимизация окна. Вам необходимо предоставить полный путь к открываемому файлу и приложение, которое вы используете, чтобы открыть его. Странно, если вы просто распространяете задний конец, я понятия не имею, почему вы хотите его открыть. Вы действительно должны распространять ярлык на рабочем столе, чтобы идти вместе с приложением, и пользователь может открыть его, когда он будет загружен. –