1 votos

Teclas de límite de PowerShell aceptadas por secuencia de comandos de pausa

Poner las siguientes líneas al final de una secuencia de comandos de PowerShell tiene la siguiente funcionalidad:

  if($Host.Name -eq "ConsoleHost")
  {
    Write-Host "Press any key to continue..." -NoNewline
    $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null
  }
  1. Si ejecuto el script haciendo clic derecho sobre ella, va a Correr "con PowerShell," entonces la ventana de la consola se queda abierto para mí hasta que se presione cualquier tecla para continuar.
  2. Si ya tengo una ventana de PowerShell abra y ejecute la secuencia de comandos desde dentro de esta ventana, aunque el "Presione cualquier tecla para continuar" texto todavía aparece, yo en realidad no tiene que presionar nada para continuar; lo hace por su propia cuenta. Por lo tanto, de inmediato me puede ejecutar algo más después de esto.

Me gusta este comportamiento, pero prefiero limitar a un subconjunto específico de las teclas (o incluso una sola clave, tales como la tecla enter), si es posible. El uso de read-host no funciona, entonces todavía tengo que entrar de entrada, incluso cuando se ejecuta desde otra ventana de PowerShell; el objetivo es, simplemente, dejar la ventana se cierre cuando lo ejecuto desde el menú de contexto. Yo no tengo por qué la entrada de cualquier cosa cuando se ejecuta a partir de una ya existente consola de PowerShell.

Básicamente, me gusta la funcionalidad del código tengo encima, pero quiero límite de las claves que se aplica.

Es posible lograr esto? Si es así, ¿cómo?

0voto

postanote Puntos 159

Como para esto...

el objetivo es, simplemente, dejar la ventana se cierre cuando lo ejecuto desde el menú de contexto

De todos sabemos que la razón por la que esto sucede es que el menú de contexto es sólo correr powershell.exe y su guión es un argumento. Así, se supone que cerrar. Usted no puede hacer lo que está después desde el menú de contexto sin necesidad de cambiar la forma en el menú contextual que se ejecuta la llamada al script host.

Asegúrese de que usted puede entrar en el registro y hack para cambiar eso. Sin embargo, para tratar con rapidez, al menos, esta cerca de la ventana a la derecha haga clic en un .ps1, sin reg hacking. Intenta esto.

1 - Crear un nuevo acceso directo en el escritorio y el lugar a continuación en el cuadro Destino.

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noexit

2 - Dar el nombre del acceso directo de PowerShell, o lo que sea

3 - Copiar a la carpeta SendTo: C:\Users\YourUserName\AppData\Roaming\Microsoft\Windows\SendTo

Haga clic en la secuencia de comandos y seleccione Enviar a, seleccione el acceso directo.

Claro, es un click, pero muy simple de implementar vs escribir cosas adicionales.

Como la Barra de tareas, que prácticamente se puede poner lo que quieras en la carpeta SendTo que lidiar con un tipo de archivo que le gustaría trabajar en / con / ejecutar.

Como para esto...

Yo preferiría que se limita a un subconjunto específico de las teclas (o incluso una sola clave, tales como la tecla enter)

Estoy sinceramente no estoy seguro de que el punto (como se tendría que cambiar el mensaje y decirle al usuario que lo clave para la prensa, ya que están cambiando el valor predeterminado), estoy seguro de que usted tiene sus razones, pero que por supuesto requieren de un poco más de trabajo y me gustaría tener el juguete con el primero.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: