【问题标题】:How to open a specific excel file with a batch script and command line arguments?如何使用批处理脚本和命令行参数打开特定的 excel 文件?
【发布时间】:2017-08-03 00:06:49
【问题描述】:

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

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

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

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

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

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

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

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

如何为启动程序编写一个接受命令行参数的 bash 脚本?

【问题讨论】:

  • 批处理脚本和bash脚本是不同的动物,powershell更是如此。请通过删除不必要的标签并将广义/通用问题更改为更具体的内容来编辑您的“问题”。正如您目前所拥有的那样,您似乎正在使用任何既粗鲁又在技术上离题的方法请求免费解决方案。
  • 在任何路径组件之前放一对空引号,例如start "" "C:\Program Files (x86)\...\EXCEL.EXE" /a ...,因为start 通常将第一个带引号的字符串解释为窗口标题...

标签: excel windows batch-file


【解决方案1】:
@echo off
set params=%*
start excel "MyWorkbook.xlsm" /e/%params%

假设您将其命名为“MyBatch.bat”,然后您这样称呼它:

MyBatch.bat Hello/World1

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

如果您不喜欢该字符串,我相信您也可以这样做(在 *.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
)

【讨论】:

【解决方案2】:

首先,我建议在启动文件夹上使用计划任务(一致的行为)。登录时触发,或者您需要它,然后执行powershell -ExecutionPolicy Bypass -NoProfile -File 'thing.ps1'。看起来您可能会乱序传递 Excel exe 的参数。

$EXE = "${env:ProgramFiles(x86)}\Microsoft Office\root\Office16\EXCEL.EXE"
& $EXE 'C:\...\filename.xlsm' /a 'CompanyExcelAddin.CompanyFunctions'

【讨论】:

    猜你喜欢
    • 2012-05-24
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    相关资源
    最近更新 更多