我正在编写一个批处理脚本,除其他外,它会打开一个启用宏的 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