Estoy seguro de que esto debe ser posible, pero no puedo descubrir cómo hacerlo.
¿Alguna pista?
fuente
Estoy seguro de que esto debe ser posible, pero no puedo descubrir cómo hacerlo.
¿Alguna pista?
Utilizar:
ii .
que es la abreviatura de
Invoke-Item .
Es una de las cosas más comunes que escribo en la línea de comandos de PowerShell.
Tienes pocas opciones:
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")
ii
es un alias deInvoke-Item
Use cualquiera de estos:
start .
explorer .
start explorer .
ii .
invoke-item .
Puede aplicar cualquiera de estos comandos en PowerShell.
En caso de que desee abrir el explorador desde el símbolo del sistema, los dos últimos comandos no funcionan y los tres primeros funcionan bien.
Solo usa el Invoke-Item
cmdlet. Por ejemplo, si desea abrir una ventana del explorador en el directorio actual, puede hacer lo siguiente:
Invoke-Item .
explorer .
explorer
parece estar fuera de mi camino
Encontré esta pregunta buscando una manera de abrir una ventana de Explorer 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 el Explorador y seleccionar un archivo, use Invoke-Expression
:
Invoke-Expression "explorer '/select,$filePath'"
Probablemente hay otras formas de hacer esto, pero esto funcionó para mí.
$startinfo = new-object System.Diagnostics.ProcessStartInfo
$startinfo.FileName = "explorer.exe"
$startinfo.WorkingDirectory = 'D:\foldername'
[System.Diagnostics.Process]::Start($startinfo)
Espero que esto ayude
start explorer.exe
Comando simple de una sola línea
Quería escribir esto como un comentario, pero no tengo 50 reputación.
Todas las respuestas en este hilo son esencialmente usar Invoke-Item o usar explorer.exe directamente; sin embargo, esto no es completamente sinónimo de "abrir carpeta que contiene", por lo que en términos de abrir una ventana del Explorador como dice 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 lugar a que se invoque Notepad.exe o Firefox.exe en los dos archivos respectivamente, no una ventana explorer.exe en C: \ Users \ Foo \ (el directorio que lo 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á haciendo scripts y necesita "abrir la carpeta que contiene" en una variable, se convierte en una cuestión de coincidencia de cadenas para extraer el directorio de La ruta completa al archivo.
¿No existe un comando simple "Open-Containing-Folder" que pueda 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
Esto es lo único que se ajusta a mis limitaciones únicas de querer que la carpeta se abra como una pestaña Quizo en cualquier ventana del Explorador existente.
$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
ii
esexplorer
, el segundo parámetro es la ruta.