3

Invoke-Item "some-file.xlsx"用来启动 Excel 并打开一个文件。现在我想以只读模式打开这个文件。这可能来自 PowerShell 吗?

为了明确起见,我不想打开 Excel 工作表并将其中的数据读取到 PowerShell 脚本,该脚本旨在帮助用户查找文件并打开它。

4

2 回答 2

0

Invoke-item只允许文件的默认操作。
要以只读方式打开文件,请执行以下任一操作:

  • 在文件上设置只读属性,启动文件,取消设置只读属性,

    attrib +r "some-file.xlsx"
    Invoke-Item "some-file.xlsx"
    attrib -r "some-file.xlsx"
    

或者

  • 直接调用excel,将/r作为命令文件传递

    $xl = (Get-ItemProperty -Path HKCR:\Applications\EXCEL.EXE\Shell\OpenAsReadOnly\command).'(default)'
    $fle = '"some-file.xlsx"'
    & $xl $fle
    

检查从 Powershell 执行存储在变量中的命令以获得适合您的语法

于 2013-11-11T14:11:27.080 回答
0

只读被定义为文件的一个属性。所以我的建议是将文件设置为只读,然后使用 Invoke-item 正常打开。或者,您可以使用代码来设置文件属性。以下应该可以解决问题:

set-itemproperty "some-file.xlsx" -Name Attributes -Value "ReadOnly"   

参考:

http://blogs.technet.com/b/heyscriptingguy/archive/2011/01/27/use-powershell-to-toggle-the-archive-bit-on-files.aspx

将文件设置为只读的步骤:

  1. 确保该文件未在 Excel 中打开。
  2. 在 Windows 开始菜单上,依次指向程序、附件,然后单击 Windows 资源管理器。
  3. 在“探索”窗口中,打开包含该文件的驱动器或文件夹。
  4. 单击文件名。
  5. 在文件菜单上,单击属性。
  6. 单击常规选项卡。
  7. 选中只读复选框。

参考:

http://office.microsoft.com/en-gb/excel-help/save-a-workbook-as-read-only-or-remove-read-only-status-HP005201902.aspx

于 2013-11-11T11:40:19.640 回答