Microsoft Word命令行实用程序

我有一个MS Word文档,其path在环境variables中设置。

如何从命令行工具打开该文档?

"C:\Program Files\Microsoft Office\Office\Winword.exe" E:\hello.docx 

我有上面的命令来打开一个文件。 但是在上面的命令中,我已经对文档的名称和path进行了硬编码。

我想要做的就是使用一个环境variables来提供文档的名称和path。

如果您的意思是来自批处理文件,并且MS Word与系统上的.doc.docx文件扩展名正确关联,则非常简单。

将以下内容放入批处理文件(例如,C:\ Temp \ StartHello.bat)。 我已经使用DocVar作为文档的路径和文件名; 用你命名的环境变量替换它。

 set DocVar="E:\Hello.docx" %DocVar% 

运行

 C:\Temp>StartHello 

如果已经设置了环境变量,只需从分配该文件的批处理文件中删除第一行即可。 这给你一个单一的行:

 %DocVar% 

如果你的意思是“直接从命令行”,你可以跳过批处理文件部分:

 C:\Temp>%DocVar% 

如果您打算使用Powershell而不是命令提示符,则只需完成几个设置步骤即可完成。

首先,为您的Word文档创建环境变量。 如果您已经在其他地方完成了这一步,请跳过这一步。 请注意,由双引号括起来的字符串将解析变量,因此在本例中$env:username将解析为您当前的Windows用户。 如果你愿意的话,你也可以硬编码,但这对概括这个例子很有帮助。

 $env:WordDoc = "C:\Users\$env:username\Documents\myDocument.docx" 

接下来,您需要将Office的目录添加到路径变量中。 您可以搜索winword.exe来查找位置,但它可能是以下两个之一:

  • C:\ Program Files \ Microsoft Office \ Office14
  • C:\ Program Files(x86)\ Microsoft Office \ Office14

您可以简单地将该路径附加到环境变量,如下所示:

 $env:Path += ";C:\Program Files\Microsoft Office\Office14" 

无论如何,一旦设置,你可以使用winword来打开word文档。 这是一个简单的例子:

 winword $env:WordDoc 

关于以这种方式更改环境变量的快速注释 – 它们处于过程级别。 这意味着当你关闭你的PowerShell会话时,这些改变将会消失。 你可以将它们保存到一个PowerShell脚本中,并在控制台中运行它,而不是将它们输出到每个新的会话中。 这是一个在我的机器上运行的快速脚本:

 param ( [string]$FilePath [string]$wordDir = "C:\Program Files (x86)\Microsoft Office\Office14" ) $env:WordDoc = $FilePath If(!($env:Path | Select-String -SimpleMatch $wordDir)) { $env:Path += ";$wordDir" } winword $env:WordDoc 

在命令提示符下执行此操作将涉及类似的过程 – 您仍然需要设置PATH环境变量来识别Microsoft Office。 这个答案提供了一些有关如何做到这一点的见解。