私はpowershellを使って別のpowershellスクリプトを実行しています。ある時点で他のスクリプトが入力を求めていますが、私は他のスクリプトの出力を読むことができますそれに入力を供給する。あなたがbashで期待してできることと似ています。bashに相当するpowershellの "expect"
アイデア?
ありがとうございました
私はpowershellを使って別のpowershellスクリプトを実行しています。ある時点で他のスクリプトが入力を求めていますが、私は他のスクリプトの出力を読むことができますそれに入力を供給する。あなたがbashで期待してできることと似ています。bashに相当するpowershellの "expect"
アイデア?
ありがとうございました
正確な複製機能はありません。この質問には、プロセスとの間でコンテンツを渡すことができると主張する回答があるため、必要なものと連携する可能性があります。
How to run interactive commands in another application window from powershell
グッドラック!
PowerShellでExpectプログラムを使用するだけです。できます。 Powershellはシェルでもあります。powershellによって書かれたコードを実行することができます。これは、powershellを再度呼び出すbashコードを呼び出します。
ベローはテストです。
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
}
テストを説明しましょう。
誰かを助けることができるように自分のソリューションを投稿するだけです。私は同じ問題に直面し、答えを求める他のスクリプトを実行していました。最初に、各行の各質問に対する回答を順番に入力して "inputFileLocation.txt"というファイルを作成します。次に、以下の構文でスクリプトを実行します。そしてそれは仕事をするでしょう。
`cmd.exe /c "script.bat < inputFileLocation.txt"`