我相信这一定是可能的,但我不知道该怎么做。

有线索吗?


当前回答

我想写这篇评论,但我没有50的声誉。

这个线程中的所有答案本质上都是使用Invoke-Item或直接使用explorer.exe;然而,这并不完全等同于“打开包含文件夹”,所以就打开资源管理器窗口而言,如果我们想要将答案应用到特定的文件,这个问题仍然没有真正得到答案。

例如,

Invoke-Item C:\Users\Foo\bar.txt
explorer.exe C:\Users\Foo\bar.html

^这两个命令将导致Notepad.exe或Firefox.exe分别在这两个文件上被调用,而不是C:\Users\Foo\(包含目录)上的explorer.exe窗口。

然而,如果从powershell发出这个命令,这不是什么大问题(无论如何都不需要输入),如果编写脚本并且需要在变量上“打开包含文件夹”,那么就变成了一个字符串匹配问题,以便从文件的完整路径中提取目录。

是否没有简单的命令“打开包含文件夹”这样一个变量可以被替换?

例如,

$foo = "C:\Users\Foo\foo.txt"    
[some code] $fooPath
# opens C:\Users\Foo\ and not the default program for .txt file extension

其他回答

start explorer.exe 

简单的单行命令

$startinfo = new-object System.Diagnostics.ProcessStartInfo 
$startinfo.FileName = "explorer.exe"
$startinfo.WorkingDirectory = 'D:\foldername'

[System.Diagnostics.Process]::Start($startinfo)

希望这能有所帮助

单行命令,这对我很有用

探险家。\

只需使用Invoke-Item cmdlet即可。例如,如果你想在当前目录上打开一个资源管理器窗口,你可以这样做:

Invoke-Item .

Use:

ii .

简称为

Invoke-Item .

这是我在PowerShell命令行中最常键入的内容之一。