我Invoke-Item "some-file.xlsx"
用来启动 Excel 并打开一个文件。现在我想以只读模式打开这个文件。这可能来自 PowerShell 吗?
为了明确起见,我不想打开 Excel 工作表并将其中的数据读取到 PowerShell 脚本,该脚本旨在帮助用户查找文件并打开它。
我Invoke-Item "some-file.xlsx"
用来启动 Excel 并打开一个文件。现在我想以只读模式打开这个文件。这可能来自 PowerShell 吗?
为了明确起见,我不想打开 Excel 工作表并将其中的数据读取到 PowerShell 脚本,该脚本旨在帮助用户查找文件并打开它。
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 执行存储在变量中的命令以获得适合您的语法
只读被定义为文件的一个属性。所以我的建议是将文件设置为只读,然后使用 Invoke-item 正常打开。或者,您可以使用代码来设置文件属性。以下应该可以解决问题:
set-itemproperty "some-file.xlsx" -Name Attributes -Value "ReadOnly"
参考:
将文件设置为只读的步骤:
参考: