Batch file 使用批处理文件共享引用库

Batch file 使用批处理文件共享引用库,batch-file,Batch File,我有一个Excel文件,里面有几个宏,有些叫SolidWorks,有些叫PDM,有些叫AcrobatPro。几个不同的用户将使用此电子表格,出于不同的原因,一些用户没有SolidWorks,一些用户没有Acrobat Pro,这导致某些计算机中缺少库引用,如果缺少任何引用,则所有宏都不会运行。我搜索一个简单的解决方案,比如不要运行丢失的库宏,但找不到它。我的下一个想法是将库添加到vault中,所有库都可以从那里运行,这是不可能的。也许如果我只是将参考文件复制到每台计算机上就可以了,即使没有acr

我有一个Excel文件,里面有几个宏,有些叫SolidWorks,有些叫PDM,有些叫AcrobatPro。几个不同的用户将使用此电子表格,出于不同的原因,一些用户没有SolidWorks,一些用户没有Acrobat Pro,这导致某些计算机中缺少库引用,如果缺少任何引用,则所有宏都不会运行。我搜索一个简单的解决方案,比如不要运行丢失的库宏,但找不到它。我的下一个想法是将库添加到vault中,所有库都可以从那里运行,这是不可能的。也许如果我只是将参考文件复制到每台计算机上就可以了,即使没有acrobat,它也可以,只是创建带有*.tlb的文件夹路径就像一个符咒,现在的问题是如何创建所有计算机上所有参考文件的所有文件夹结构。批处理文件。正如我可以在网上找到的例子,这应该是可行的,但事实并非如此,我也不知道为什么,甚至使用了一些bat测试工具,而且都说是好的。是否需要一些网络配置?特权问题?这是代码的一部分。其余的只需对Solidworks和PDM文件重复

@ECHO OFF
IF EXIST "C:\Program Files (x86)\Adobe\" (
) ELSE (
mkdir "C:\Program Files (x86)\Adobe")
IF EXIST "C:\Program Files (x86)\Adobe\Acrobat 11.0\" (
)ELSE(
mkdir "C:\Program Files (x86)\Adobe\Acrobat 11.0")
IF EXIST "C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat\" (
)ELSE(
mkdir "C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat")
IF EXIST "C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat\acrobat.tlb"(
)ELSE()
xcopy "\\eng\Lib\acrobat.tlb" "C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat\"
ECHO "dONE!"
我正在尝试检查文件夹结构是否存在,如果不按照excel引用中的方式创建文件夹结构并复制文件,那么它就是不起作用。我如何让它工作?有更好的办法吗?

首先,我们应该这样做。
然后,我习惯于处理每个文件夹

请尝试以下代码:

@Echo off
net session >nul 2>&1 && goto :admintasks
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();"
exit /b
:admintasks
SETLOCAL EnableDelayedExpansion
cd /d "%~dp0"
Set "a=%ProgramFiles(x86)%\Adobe"
Set "b=%ProgramFiles(x86)%\Adobe\Acrobat 11.0"
Set "c=%ProgramFiles(x86)%\Adobe\Acrobat 11.0\Acrobat"
Set "d=%ProgramFiles(x86)%\Adobe\Acrobat 11.0\Acrobat\acrobat.tlb"
FOR %%A IN ("!a!" "!b!" "!c!") DO (
if Not exist %%A mkdir %%A
)
IF Not EXIST "%d%" xcopy "\\eng\Lib\acrobat.tlb" "C:\Program Files (x86)\Adobe\Acrobat 11.0\Acrobat\"
ECHO "Done!"
要了解所使用的命令及其工作方式,请打开cmd窗口,在其中执行以下命令

  • 获取/?
  • goto/?
  • 如果/?
  • 设置/?
  • setlocal/?
  • cd/?

如果缺少引用是一个问题,您可以使用后期绑定并测试创建特定对象的能力,以了解哪些用户有哪些安装,您是否曾在命令提示窗口中键入过
if/?
?Adobe Acrobat的安装程序遵循Microsoft的操作指南。因此,如果安装了Adobe Acrobat,则可以在
For/F
循环中嵌入
reg查询
,以获取其程序文件文件夹。无需使用默认路径四处搜索,希望Adobe Acrobat真的安装在默认路径中。@TimWilliams-感谢您的提示,这对Acrobat非常有用,因为我创建了一个对象,但对于SolidWorks PDM不同,
Dim vault As New EdmLib.EdmVault5 vault.LoginAuto“MyVault”,如果vault.IsLoggedIn为0,则
可以使用类似的后期绑定功能?请尝试将vault设置为对象:设置vault=CreateObject(“EdmLib.EdmVault5”)