如何使用批处理脚本和命令行参数打开特定的Excel文件?

all*_*ase 4 windows excel batch-file

我设计了一个Excel电子表格,该电子表格使用RTD提要从服务器获取数据并进行处理。我希望Excel文件在计算机启动期间自动打开。我决定执行此操作的方法是编写一个打开excel文件的批处理脚本,然后将该批处理脚本放入计算机的启动文件夹中。

我遇到的问题与批处理脚本有关。如果我使用Excel的默认快捷方式,则RTD提要不起作用。相反,我必须使用具有以下目标行的快捷方式:

 "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE" /a "CompanyExcelAddin.CompanyFunctions"
Run Code Online (Sandbox Code Playgroud)

我可以使用此命令行打开文件

start `"C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE" "C:\...\filename.xlsm"`
Run Code Online (Sandbox Code Playgroud)

但我无法使用以下bash命令打开文件

start "C:\Program Files (x86)\Microsoft Office\root\Office16\EXCEL.EXE" /a "CompanyExcelAddin.CompanyFunctions" "C:\...\filename.xlsm"
Run Code Online (Sandbox Code Playgroud)

如果我使用第一个bash脚本打开它,则RTD提要不起作用。如果我尝试运行第二个脚本,则bash脚本不会运行。

如何编写一个bash脚本,该脚本使用启动程序的命令行参数?

Ser*_*iel 5

@echo off
set params=%*
start excel "MyWorkbook.xlsm" /e/%params%
Run Code Online (Sandbox Code Playgroud)

假设您将其命名为“ MyBatch.bat”,然后将其命名为:

MyBatch.bat Hello/World1
Run Code Online (Sandbox Code Playgroud)

使用空格“”分隔参数。对于带空格的参数,请使用斜杠“ /”代替空格。

如果您不喜欢该字符串,我相信您也可以这样做(在* .bat文件中):
start excel "MyWorkbook.xlsm" /e/%param1%/%param2%/%param3%.....

如果您需要打开几个Excel实例:

@echo off
set params=%*
for %%C in (%params%) do (
    start excel "MyWorkbook.xlsm" /e/%%C
)
Run Code Online (Sandbox Code Playgroud)