在 MacOS 上,我可以使用“打开”命令打开多个文件(用空格分隔),即使文件类型不同。例如open [1.jpg] [2.jpg]
如何在 Windows Powershell 上执行相同操作?
我尝试使用启动命令、Invoke-Item 和描述的方法这里用空格和逗号分隔文件,但似乎都不起作用。
谢谢!
答案1
一种选择是使用分号:
notepad test1.txt; notepad test2.txt
这将依次打开文件。
使用start与分号组合,可以并行打开:
start notepad test1.txt; start notepad test2.txt
答案2
杰西提供了关键的提示:
自从
Invoke-Item
- 使用注册的应用程序打开文档的 PowerShell cmdlet 类似于open
macOS - 仅接受单身的文件作为争论,您必须提供路径多种的要打开的文件通过管道。当你能将路径传递为字符串通过管道,有一个小警告:
- 因为它们绑定到
-Path
参数,所以字符串被解释为通配符表达式,这会导致包含[
和的路径出现问题]
- 因为它们绑定到
为了避免这个问题,
-LiteralPath
必须绑定参数,最简单的方法是使用Get-ChildItem
或者Get-Item
, 哪个做接受多条路径作为参数:
Get-Item -LiteralPath [1.jpg], [2.jpg] | Invoke-Item # binds to -LiteralPath
如果不存在通配符问题,则可以使用以下任一形式;请注意,Get-Item
在这个简单情况下,引用参数是可选的(但带有空格或其他元字符的路径则需要它们):
'1.jpg', '2.jpg' | Invoke-Item # binds to -Path
# or
Get-Item 1.jpg, 2.jpg | Invoke-Item # -Path implied for Get-Item