2016-08-22 6 views
-1

ユーザーに何回か尋ねるバッチファイルがあります。 PowerShellでそれを自動化しようとしています。これを行う方法はありますか?私はこのようなものが必要です:バッチファイルのプロンプトをpowershellで自動化

Start-Process $InstallDir\Install.bat "y,*,$Version,y,y,y,y,y,y,y,y,y,y,y,y,y" 

Install.batはインストールを実行し、合計16のプロンプトがあります。 3番目の変数は私が既にpowershellスクリプトで持っている変数ですが、他は静的変数になります。また、スクリプトの最後に、キーを押して続行する必要があります。

これを行う方法はありますか?

+1

バッチファイルが実際に何をしているかによって異なります。しかし、単に文字列引数を渡すだけではうまくいかないでしょう。 –

+1

バッチファイルをまったく呼び出さないでください。バッチファイルのコマンドを新しいPowerShellスクリプトに置き、プロンプトを削除します。 –

+0

@Bill_Stewartこれはオプションでしたが、バッチファイルは非常に長く、これには時間がかかります。私はより速い解決を望んでいましたが、他の方法がないなら、私はこれに頼ることができます。 – rjbogz

答えて

1

バッチファイルによっては、何実際にあなたがinput redirection<を使用する場合があり、プロンプトを行うコマンド。プロンプトを行ごとにテキストファイルに入れ、バッチファイルにリダイレクトします。 ...

@echo off 
set /P VAR="Please enter some text: " 
echo/ 
echo Thank you for entering "%VAR%"! 
choice /M "Do you want to continue " 
if not ErrorLevel 2 del "%TEMP%\*.*" 
pause 

を...とテキストファイルprompts.txtには、次の行が含まれています:

... prompts.bat次のコマンドを含むバッチファイルを想定

hello world 
Y 
n 
End 

を...コマンドラインprompts.bat < prompts.txtのコンソール出力は次のようになります。

Please enter some text: 
Thank you for entering "hello world"! 
Do you want to continue [Y,N]?Y 
C:\Users\operator\AppData\Local\Temp\*.*, Are you sure (Y/N)? 
C:\Users\operator\AppData\Local\Temp\*.*, Are you sure (Y/N)? n 
Press any key to continue . . . 

choiceによって消費されないY後ろRETURNを受信すると(delコマンドは、ここで2つのプロンプトを示す図です。空のエントリは受け付けられないので、もう一度プロンプトが表示されます。)

+0

これは理論的には優れていますが、私にとっては少し速すぎて動いているようです。私が使用しているバッチファイルは各プロンプトの後にファイルをコピーしますが、最初のファイルの後に残りのプロンプトがすべて空白のように見えます。その周りには何か方法はありますか? – rjbogz

+0

バッチファイルとプロンプトを表示しているコマンドが表示されていないとわかりにくいです...そのために新しい質問をすることをお勧めします。 – aschipfl

+0

ああ、あなたはそれを行いました。参照用リンク:[バッチファイルのプロンプトで入力リダイレクトが機能しない](http://stackoverflow.com/q/39104645) – aschipfl

0

Read-Hostは入力のプロンプトを表示し、変数に割り当てると、そのエントリをスクリプトの後半で使用できることを意味します。

例が具体的ではないため、以下では、必要なことについてのみ説明します。

$InstallDir = "C:\folder" 
$Version = Read-Host -Prompt "Enter Version Number" 
Start-Process "$InstallDir\Install.bat" -ArgumentList "y,*,$Version,y,y,y,y,y,y,y,y,y,y,y,y,y" 
+0

はい、私の質問はバッチファイルにこれらの引数を渡す方法です。残念ながらプロンプトへの回答を渡すために '-ArgumentList'を使うことはできませんので、私は別の方法を探していました。 – rjbogz

関連する問題