为什么重定向工作批处理命令只能部分工作?

时间:2013-07-25 12:18:47

标签: command-line batch-file

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

1 个答案:

答案 0 :(得分:1)

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

您发布的代码工作正常(也可以回显excel命令)。其他一些代码可能就是问题所在。

相关问题