3

我正在编写一个批处理脚本,除其他外,它会打开一个启用宏的 excel 文件 (.xlsm):

2>nul (
  >>%CSF% echo off
)  && (start "cmdTitle" /B excel %CSF% /e /automation) || (echo could not open)

%CSF% 是指指向 excel 文件的完整路径的变量,即“C:\test\testfile.xlsm”(包括目录/文件名中可能有空格的情况下的引号)

此代码检查文件是否被锁定以进行编辑,如果没有,则打开文件(启动命令),否则无法打开回显。

如果我从 Windows 资源管理器打开文件或在批处理脚本中运行以下文件,则文件打开正常。

set CSF="C:\Test Folder\Test.xlsm"
start "cmdTitle" /B excel %CSF% /e /automation

但是,在检查锁定文件时运行批处理文件总是会导致 Excel 显示“Excel 在 'filename.xlsm' 中发现不可读的内容是否要恢复此工作簿的内容?” 从文件中删除宏。

编辑:除了文件无法正确打开外,任何在 excel 打开时执行某些操作的 excel 加载项,例如,删除和重新创建命令栏也无法加载:“无法访问 Addin.xla”

是什么导致单独运行命令和重定向之间的行为差​​异?TIA

4

1 回答 1

1

在十六进制查看器中检查文件的末尾,看看末尾附加了什么(如果有的话)。

您发布的代码工作正常(也与 excel 命令相呼应)。其他一些代码可能是问题所在。

于 2013-07-25T13:56:25.090 回答