批处理文件以分发Access前端

时间:2017-01-12 16:30:39

标签: batch-file ms-access

我尝试创建一个将Access 2016前端复制到桌面的批处理文件。我试图理解下面的例子:

    @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

引用了前端,没有?

如果有人能够解释每一步中发生的事情,我们将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分: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参数值指定的时间段)或直至DE,{{按下1}},LA

资源(必读):

更新以回答有关start command的问题的另一部分:

  

启动程序,命令或批处理脚本(在新窗口中打开。)

     

语法

>NUL
上面的语法标记

在原始代码中:

  • START "title" [/D path] [options] "command" [parameters] - Windows START内部命令的名称。
  • cmd - 遗漏,已调整始终包含"title"这可以是一个简单的字符串,如TITLE或只是一对空引用"My Script"。根据Microsoft文档,标题是可选的,但根据所选的其他选项如果省略则可能会出现问题
  • "" - 可选,正确省略,
  • [/D path] - / max 强制在最大化窗口中打开[options]
  • MSACCESS.EXE - "command"的完全限定路径 - 确保以下数据库文件在MSACCESS.EXE中打开,即使它可能与其他默认应用程序相关联,
  • MSACCESS.EXE - 使用[parameters]打开Access 2007/2010 database file (.accdb type)的完全合格的UNC路径。

使用以下更正的语法:

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