vez - ¿Es posible abrir una ventana del Explorador de Windows desde PowerShell?
powershell windows 10 (11)
Estoy seguro de que esto debe ser posible, pero no puedo descubrir cómo hacerlo.
¿Alguna pista?
Esto es lo único que se ajusta a mis limitaciones únicas
$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
Iniciar explorer.exe
Comando simple de una sola línea
Me encontré con esta pregunta buscando una manera de abrir una ventana del Explorador desde PowerShell y también seleccionar un archivo. Estoy agregando esta respuesta en caso de que otros la encuentren por la misma razón.
Para iniciar Explorer y seleccionar un archivo, use Invoke-Expression
:
Invoke-Expression "explorer ''/select,$filePath''"
Probablemente hay otras formas de hacer esto, pero esto funcionó para mí.
Quería escribir esto como un comentario, pero no tengo 50 reputación.
Todas las respuestas en este hilo son esencialmente para usar Invoke-Item o para usar explorer.exe directamente; sin embargo, esto no es completamente sinónimo de "abrir carpeta contenedora", así que en términos de abrir una ventana del Explorador como indica la pregunta, si quisiéramos aplicar la respuesta a un archivo en particular, la pregunta aún no ha sido respondida.
p.ej,
Invoke-Item C:/Users/Foo/bar.txt
explorer.exe C:/Users/Foo/bar.html
^ esos dos comandos darían como resultado que se invoque Notepad.exe o Firefox.exe en los dos archivos respectivamente, no una ventana de explorer.exe en C: / Users / Foo / (el directorio que contiene).
Mientras que si uno emitiera este comando desde powershell, esto no sería un gran problema (menos escribir de todos modos), si uno está ejecutando scripts y necesita "abrir carpeta contenedora" en una variable, se convierte en una cuestión de coincidencia de cadenas para extraer el directorio de La ruta completa al archivo.
¿No hay un comando simple "Abrir carpeta contenedora" que permita sustituir una variable?
p.ej,
$foo = "C:/Users/Foo/foo.txt"
[some code] $fooPath
# opens C:/Users/Foo/ and not the default program for .txt file extension
Solo usa el cmdlet de invocar artículo. Por ejemplo, si desea abrir una ventana del explorador en el directorio actual, puede hacerlo:
invoke-item .
Tienes pocas opciones:
- Powershell busca ejecutables en su ruta, al igual que cmd.exe. Así que solo puedes escribir explorer en el indicador de powershell. Usando este método, también puede pasar argumentos de línea cmd (consulte http://support.microsoft.com/kb/314853 )
- El cmdlet Invoke-Item proporciona una forma de ejecutar un archivo ejecutable o de abrir un archivo (o conjunto de archivos) desde Windows PowerShell. Alias : ii
- utilizar system.diagnostics.process
Ejemplos:
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")
Usa esta línea:
invoke-item c:/path
Utilice cualquiera de estos:
-
start .
-
explorer .
-
start explorer .
-
ii .
-
invoke-item .
Puede aplicar cualquiera de estos comandos en PowerShell.
En caso de que desee abrir la exploración desde el símbolo del sistema, los dos últimos comandos no funcionan y los tres primeros funcionan bien.
Utilizar:
ii .
Es una de las cosas más comunes que escribo en la línea de comandos de PowerShell.
$startinfo = new-object System.Diagnostics.ProcessStartInfo
$startinfo.FileName = "explorer.exe"
$startinfo.WorkingDirectory = ''D:/foldername''
[System.Diagnostics.Process]::Start($startinfo)
Espero que esto ayude
explorer .