Is it possible to open a Windows Explorer window from PowerShell?

后端 未结 10 515
小鲜肉
小鲜肉 2020-12-07 07:21

I\'m sure this must be possible, but I can\'t find out how to do it.

Any clues?

相关标签:
10条回答
  • 2020-12-07 07:35
    start explorer.exe 
    

    Simple single line command

    0 讨论(0)
  • 2020-12-07 07:38

    You have a few options:

    • Powershell looks for executables in your path, just as cmd.exe does. So you can just type explorer on the powershell prompt. Using this method, you can also pass cmd-line arguments (see http://support.microsoft.com/kb/314853)
    • The Invoke-Item cmdlet provides a way to run an executable file or to open a file (or set of files) from within Windows PowerShell. Alias: ii
    • use system.diagnostics.process

    Examples:

    PS C:\> explorer
    PS C:\> explorer .
    PS C:\> explorer /n
    PS C:\> Invoke-Item c:\path\
    PS C:\> ii c:\path\
    PS C:\> Invoke-Item c:\windows\explorer.exe
    PS C:\> ii c:\windows\explorer.exe
    PS C:\> [diagnostics.process]::start("explorer.exe")
    
    0 讨论(0)
  • 2020-12-07 07:43

    Just use the Invoke-Item cmdlet. For example, if you want to open a explorer window on the current directory you can do:

    Invoke-Item .
    
    0 讨论(0)
  • 2020-12-07 07:43

    I wanted to write this as a comment but I do not have 50 reputation.

    All of the answers in this thread are essentially to use Invoke-Item or to use explorer.exe directly; however, this isn't completely synonymous with "open containing folder", so in terms of opening an Explorer window as the question states, if we wanted to apply the answer to a particular file the question still hasn't really been answered.

    e.g.,

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

    ^ those two commands would result in Notepad.exe or Firefox.exe being invoked on the two files respectively, not an explorer.exe window on C:\Users\Foo\ (the containing directory).

    Whereas if one was issuing this command from powershell, this would be no big deal (less typing anyway), if one is scripting and needs to "open containing folder" on a variable, it becomes a matter of string matching to extract the directory from the full path to the file.

    Is there no simple command "Open-Containing-Folder" such that a variable could be substituted?

    e.g.,

    $foo = "C:\Users\Foo\foo.txt"    
    [some code] $fooPath
    # opens C:\Users\Foo\ and not the default program for .txt file extension
    
    0 讨论(0)
  • 2020-12-07 07:43

    This is the only thing that fit my unique constraints of wanting the folder to open as a Quizo Tab in any existing Explorer window.

    $objShell = New-Object -ComObject "Shell.Application"
    $objShell.Explore("path")
    
    0 讨论(0)
  • Use:

    ii .
    

    which is short for

    Invoke-Item .
    

    It is one of the most common things I type at the PowerShell command line.

    0 讨论(0)
提交回复
热议问题