我尝试创建一个将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
引用了前端,没有?
如果有人能够解释每一步中发生的事情,我们将不胜感激。
谢谢。
答案 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
参数值指定的时间段)或直至D
,E
,{{按下1}},L
或A
。
资源(必读):
Y
等特殊页面)Redirection 更新以回答有关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