Encadenar CMDLETS

Etiquetado: 

Este debate contiene 5 respuestas, tiene 2 mensajes y lo actualizó  Cristina Nicolàs hace 1 año, 3 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

    Curso presencial. Conviértete en un Experto en Business Central.

    Curso organizado como un máster.
    Las inscripciones anticipadas terminan el 28 de febrero.
    Inicio del curso: 26 de Abril
    Más información

    #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

    Curso presencial. Conviértete en un Experto en Business Central.

    Curso organizado como un máster.
    Las inscripciones anticipadas terminan el 28 de febrero.
    Inicio del curso: 26 de Abril
    Más información

    #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

    Curso presencial. Conviértete en un Experto en Business Central.

    Curso organizado como un máster.
    Las inscripciones anticipadas terminan el 28 de febrero.
    Inicio del curso: 26 de Abril
    Más información

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

Debes estar registrado para responder a este debate.

Members Currently Active: 1
actio.dz
Keymaster | Moderator | Participant | Spectator | Blocked
Additional Forum Statistics
Threads: 730, Posts: 2.414, Members: 813
Welcome to our newest member, GCG
Most users ever online was 15 on 5 April, 2019 9:31 am