¿Es posible dividir una línea de comando de PowerShell en varias líneas?
En Visual Basic puedo usar el guión bajo ( _
) para continuar el comando en la siguiente línea.
powershell
multiline
eXXL
fuente
fuente
sh
comando, las convenciones de bash se mantienen para que pueda usar la barra invertida. En ese caso, su script también debe tener terminaciones de estilo Unix.Respuestas:
Puede usar un espacio seguido del acento grave (retroceso):
Sin embargo, esto solo es necesario en los casos que se muestran arriba. Por lo general, obtiene una continuación de línea automática cuando un comando no puede completarse sintácticamente en ese punto. Esto incluye comenzar un nuevo elemento de canalización:
funcionará sin problemas ya que después de que el
|
comando no se pueda completar ya que falta otro elemento de canalización. También abrir llaves o cualquier otro tipo de paréntesis permitirá la continuación de línea directamente:Similar a la
|
coma también funcionará en algunos contextos:Sin embargo, tenga en cuenta que, de manera similar a la inserción automática de punto y coma de JavaScript , hay algunas cosas que se rompen de manera similar porque el salto de línea ocurre en un punto donde está precedido por una declaración válida:
no trabajará.
Finalmente, las cadenas (en todas las variedades) también pueden extenderse más allá de una sola línea:
Incluyen los saltos de línea dentro de la cadena, entonces.
fuente
|
y{
.Me acabo de enterar de que no debe haber ningún carácter entre el tic de retroceso y el salto de línea. Incluso los espacios en blanco harán que el comando no funcione.
fuente
En la mayoría de los lenguajes tipo C, soy deliberado acerca de colocar mis llaves donde creo que hacen que el código sea más fácil de leer.
El analizador de PowerShell reconoce cuando una declaración claramente no está completa y mira a la siguiente línea. Por ejemplo, imagine un cmdlet que toma un parámetro de bloque de script opcional:
Si el bloque de script es muy largo, es posible que desee escribir:
Pero esto no funcionará: el analizador verá dos declaraciones. El primero es
Get-Foo
y el segundo es un bloque de script. En cambio, escribo:Podría usar el carácter de continuación de línea (`) pero eso hace que el código sea difícil de leer e invita a los errores.
Como este caso requiere que la llave abierta esté en la línea anterior, sigo ese patrón en todas partes:
De manera similar, en el caso de tuberías largas, rompo después del carácter de tubería (
|
):fuente
if
yforeach
ytry
trabajo, entonces? permiten bloques de script en la siguiente línea ... esto significa que es posible que sea posiblePara ampliar la respuesta de cristobalito :
Por ejemplo:
Firme un script de PowerShell en la línea de comandos. No hay saltos de línea.
fuente
En PowerShell y PowerShell ISE, también es posible usar Shift+ Enteral final de cada línea para la edición multilínea (en lugar de la tecla de retroceso estándar
`
).fuente
SHIFT-ENTER
truco.PSReadLine
módulo o un equivalente. En las funciones estándar de entrada de la consola de Windows,Enter
yShift+Enter
son funcionalmente equivalentes.PSReadline
módulo funciona en el huésped consola única (no ISE). 2)Shift+Enter
funciona en el host de la consola solo cuando se usaPSReadline
. 3)Shift+Enter
siempre ha trabajado en el ISE. 4) Si usa el host de la consola sinPSReadline
,Shift+Enter
es funcionalmente equivalente a presionarEnter
.Si está tratando de separar cadenas en varias líneas, puede usar el "+". Por ejemplo:
Se verá igual que:
fuente
Supongo que está hablando en la línea de comandos: si está en un script, entonces una nueva línea actúa como un delimitador de comandos.
En la línea de comando, use un punto y coma ';'
fuente
;
para separar el comando\\
en cualquier barra diagonal inversa\
."'
para pasar una dirección segura para cambiar el comando como "'RUTA'".Este comando ps1 instala el certificado pfx de locale.
fuente
Hay tantas maneras de continuar una línea en PowerShell, con tuberías, corchetes, paréntesis, operadores, puntos, incluso con una coma. Aquí hay un blog al respecto: https://get-powershellblog.blogspot.com/2017/07/bye-bye-backtick-natural-line.html
Puede continuar justo después de declaraciones como foreach y si también.
fuente
la fuente
no usa comillas
fuente
Simplemente use el carácter `para separar el comando en líneas múltiples
fuente
Simplemente agregue un caso de esquina aquí. Puede ahorrarte 5 minutos. Si usa una cadena de acciones, debe poner "." al final de la línea, deje un espacio seguido de "" (retroceso). Descubrí esto de la manera difícil.
fuente