Encadenar CMDLETS

Etiquetado: 

Este debate contiene 5 respuestas, tiene 2 mensajes y lo actualizó  Cristina Nicolàs hace 1 año, 9 meses.

Viendo 6 publicaciones - del 1 al 6 (de un total de 6)
  • Autor
    Publicaciones
  • #4022

    santi.galan
    Participante

    Buenas,

    Tengo que encadenar un conjunto de CMDLETS para realizar unas tareas que serán recurrentes cada cierto tiempo. He probado en hacer un .BAT pero no funciona. ¿Alguien me puede ayudar?

    Un saludo,

    #4023

    Cristina Nicolàs
    Jefe de claves

    Hola Santi,

    Los cmdlets de PowerShell, en lugar de un archivo .bat, los tienes que poner en un archivo con extensión .ps1.
    Una vez creado el archivo, lo puedes ejecutar manualmente cuando te convenga, o imagino (no lo he probado), que lo podrías ejecutar de forma periódica con las tareas programadas de Windows o con otros sistemas.

    Un saludo,
    Cristina Nicolàs

    ¿Quieres conocer las últimas novedades sobre Business Central? Dynamics ScaleUp 2019.

    Consulta fechas en
    DynamicsScaleUp.com

    #4027

    santi.galan
    Participante

    Hola Cristina,

    Muchas gracias! aprovechando me gustaría preguntarte cómo puedo hacer para que después de cada CMDLET no me pregunte SI/NO/ etc.

    Mil gracias de nuevo.

    Santi

    #4028

    santi.galan
    Participante

    Ya lo encontré!

    Un saludo!

    #4030

    Cristina Nicolàs
    Jefe de claves

    Hola Santi,

    Gracias. De todos modos pongo por aquí un código que utilizo yo a menudo por si alguien que lea este hilo a futuro lo necesita.

    # Aquí el código de lo que tiene que ejecutar mi PowerShell
    
    $finish = $false
    do
    {
    
      $a = Read-Host "Has acabado de hacer la revisión? S/N"
    
      switch ($a)
      {
        "S" {
               # Aquí el código de lo que tengo que hacer en caso que Sí
    
               $finish = $true
            }
        "N" {
               # Aquí el código de lo que tengo que hacer en caso que No
    
               $finish = $true
            }
        default {
               "$a no es una opción. Tienes que responder S o N"
            }
      }
    } while ($finish -eq $false)

    En mi caso, primero ejecuto una serie de acciones con las que el usuario también tiene que interactuar, y después le pregunto si ha acabado.
    Si responde cualquier cosa que no sea S o N, le digo que no es una opción y le vuelvo a preguntar, y así se queda en bucle mientras no conteste S o N.
    En el caso de decir que Sí, me llevo los archivos que estaba revisando a otra carpeta.
    En el caso de decir que No, dejo los archivos que estaba revisando en la misma carpeta, de modo que una futura ejecución de este mismo PowerShell los revisará de nuevo.

    Un saludo,
    Cristina Nicolàs

    ¿Quieres conocer las últimas novedades sobre Business Central? Dynamics ScaleUp 2019.

    Consulta fechas en
    DynamicsScaleUp.com

    #4031

    Cristina Nicolàs
    Jefe de claves

    Por cierto,

    Para el que quiera iniciarse utilizando los Cmdlets de PowerShell que hay para Dynamics NAV, tenemos un par de curso en donde explicamos qué es esto de PowerShell, vemos algunos de los Cmdlets que existen y hacemos algunos scripts:

    Curso Introducción y Administración con PowerShell

    Curso Merge de Código con PowerShell

    Un saludo,
    Cristina Nicolàs

    ¿Quieres conocer las últimas novedades sobre Business Central? Dynamics ScaleUp 2019.

    Consulta fechas en
    DynamicsScaleUp.com

Viendo 6 publicaciones - del 1 al 6 (de un total de 6)

Debes estar registrado para responder a este debate.

Members Currently Active: 0
No users are currently active
Keymaster | Moderator | Participant | Spectator | Blocked
Additional Forum Statistics
Threads: 969, Posts: 3.099, Members: 960
Welcome to our newest member, bbizaro
Most users ever online was 15 on 5 April, 2019 9:31 am