2011-10-17 16 views
6

Estoy usando powershell para ejecutar otra secuencia de comandos de powershell, en algún momento la otra secuencia de comandos solicita alguna entrada, me gustaría poder leer la salida de otra secuencia de comandos y basándome en que le proporcionan información. Similar a lo que puedes hacer con esperar en bash.Equivalente a bash "esperar" en powershell

¿Alguna idea?

Gracias

Respuesta

0

Usted solo usa el programa Expect en su Powershell. Funciona. Powershell también es un caparazón, puedes ejecutar código escrito por powershell, que llama al código bash, que vuelve a llamar a powershell.

El fuelle es una prueba, se aprobó.

It "can work with tcl expect" { 
    $bs = @' 
    echo "Do you wish to install this program?" 
    select yn in "Yes" "No"; do 
    case $yn in 
     Yes) echo "install"; break;; 
     No) exit;; 
    esac 
done 
'@ 

$bsf = New-TemporaryFile 
$bs | Set-Content -Path $bsf 

$tcls = @' 
#!/bin/sh 
# exp.tcl \ 
exec tclsh "$0" ${1+"[email protected]"} 

package require Expect 
set timeout 100000 
spawn {spawn-command} 
expect { 
    "Enter password: $" { 
     exp_send "$password\r" 
     exp_continue 
    } 
    "#\? $" { 
      exp_send "1" 
    } 
    eof {} 
    timeout {} 
} 
'@ 

$tclf = New-TemporaryFile 
$tcls -replace "{spawn-command}",("bash",$bsf -join " ") | Set-Content -Path $tclf 
"bash", $tclf -join " " | Invoke-Expression 

Remove-Item $bsf 
Remove-Item $tclf 
} 

Déjame explicarte la prueba.

  1. crean un archivo bash que espera una entrada.
  2. crear un archivo tcl que invoque a bash creado en el paso uno.
  3. invoke el programa tcl de powershell, funciona, no espera la entrada.
0

Solo publicando mi solución para que pueda ayudar a alguien. Me enfrenté al mismo problema al ejecutar otro script que me pedirá respuestas. Primero crea un archivo "inputFileLocation.txt" con respuestas a cada pregunta en cada línea en secuencia. Luego ejecute el script a continuación sintaxis. Y hará el trabajo.

`cmd.exe /c "script.bat < inputFileLocation.txt"` 
Cuestiones relacionadas