2016-08-18 4 views
0

私はホストとしてfirebaseを使用しています。私は、私は2つのCMDの命令を呼び出す必要が私のWebページをアップロードする場合:パイプのスペースを使用したバッチファイルのプロンプト

  1. firebaseのinitを
  2. firebaseは私がfirebaseのinit実行すると、私は上に行くためにいくつかの質問に答える必要があります

を展開します。最初の質問にははいと答えて入力し、2番目の項目には1つの項目の選択を解除して次に進むためのスペースを入力する必要があります。

この手順でバッチファイルを使用しようとしています。

私は、ファイルは次のようになり、私はバッチファイルに以下の内容でパイプを使用できることを発見した:

echo y | firebase init 

が、これは「yのエコーは、」firebaseのinitのための唯一の最初の命令です。その後、「スペース」と「入力」の項目を選択解除する必要があります。

どのように記述することができます。これは、パイプ

y<Linefeed> 
<space><Linefeed> 
<Linefeed> 

を通じて送信

(echo y 
echo "space" 
echo "enter") | firebase init 
+1

'echo'コマンドやパイプなしfirebase' --non-インタラクティブinit'と 'firebase --non-インタラクティブdeploy'を使用してみてください展開します。 –

+0

これは動作しません。インタラクティブプロンプトが表示されます。 –

+0

これは、インタラクティブにしたくないという点です。だからあなたはパイプを通して回答を渡そうとしているのです。あなたが望むのは、 '--non-interactive'の後にコマンドラインで追加のパラメータを指定する方法です。対話的に与える答えと同じです。 –

答えて

0

(
(echo(y) 
(echo() 
(echo() 
) | firebase init 

でそれを試してみてください括弧は、アンバランスのようですが、それはこの方法で正しいのですecho(として、コンテンツがそのまま印刷されるようにします。

+0

それは動作しません。 –

+0

「スペース」と「エンター」は再現されていないと思います。おそらくスペースキーを押してキーを入力するためのバッチファイルに相当するものがあります。 –

+0

入力するために^を入力すると、それが再調整されます。しかし、これは私が「echo^| firebase init」とタイプする場合にのみ当てはまります。 "(echo y echo ^)| firebase init"と入力すると、バッチファイルが起動しません。 –

0

これはあなたのために必要ですか?

@echo off 

:: start command 
firebase init 

:: wait command to load. IP must be unreachable for -w to work as expected 
ping 1.1.1.1 -n 1 -w 500 >NUL 

call:sendKeys 

exit/B 

:: spawn a cscript to echo desired keys to the same cmd window 
:: sleep time may need to be changed 
:sendKeys 
SetLocal 
set "_vbs_file_=%TEMP%\keys.vbs" 
(
    echo(set oWS ^= CreateObject^("wScript.Shell"^) 
    echo(wScript.Sleep 100 
    echo(oWS.SendKeys "y" 
    echo(wScript.Sleep 100 
    echo(oWS.SendKeys " " 
    echo(wScript.Sleep 100 
    echo(oWS.SendKeys "{ENTER}" 
)>"%_vbs_file_%" 
if exist "%TEMP%\keys.vbs" (set "_spawn_=%TEMP%\keys.vbs") else (set "_spawn_=keys.vbs") 
ping 1.1.1.1 -n 1 -w 50 >NUL 
start /B /WAIT cmd /C "cls & "%_spawn_%" & del /F /Q "%_spawn_%" 2>NUL" 
exit/B 0 

編集:エコーは、明示的なキャリッジリターンを送信して、のSendKeysは(ものping遅延は今1500ミリ秒である)であってもよいfirebase.jsonファイルはエコーを使用して作成する必要がありますまず

@echo off 

:: start command 
firebase init 

:: wait command to load. IP must be unreachable for -w to work as expected 
ping 1.1.1.1 -n 1 -w 1500 >NUL 

call:sendKeys 

exit/B 

:: spawn a cscript to echo desired keys to the same cmd window 
:: sleep time may need to be changed 
:sendKeys 
SetLocal 
set "_vbs_file_=%TEMP%\keys.vbs" 
(
    echo(set oWS ^= CreateObject^("wScript.Shell"^) 
    echo(wScript.Sleep 100 
    echo(oWS.SendKeys "y" 
    echo(wScript.Sleep 100 
    echo(oWS.SendKeys "{ENTER}" 
    echo(oWS.SendKeys " " 
    echo(wScript.Sleep 100 
    echo(oWS.SendKeys "{ENTER}" 
    echo(wScript.Sleep 100 
    echo(oWS.SendKeys "{ENTER}" 
)>"%_vbs_file_%" 
if exist "%TEMP%\keys.vbs" (set "_spawn_=%TEMP%\keys.vbs") else (set "_spawn_=keys.vbs") 
ping 1.1.1.1 -n 1 -w 50 >NUL 
start /B /WAIT cmd /C "cls & "%_spawn_%" & del /F /Q "%_spawn_%" 2>NUL" 
exit/B 0 
+0

firebase initが起動し、最初のプロンプトの質問で何も起こりません。 –

+0

動作しません。それは最初のy/nの質問にハングアップします。 –

1

正しいディレクトリ。これは、firebase initコマンドを置き換えます。

次に、firebase deploy -P project aliasを実行します。 bashで

は、それは次のようになります。

エコー$は '{ "データベース":{ "ルール": "database.rules.json" }、 "ホスティング":{ 「公共「: "パブリック"、 "書き換え":[ { "ソース": "**"、 "宛先": "/index.htmlが" }] }} \ n」> firebase.json

firebaseは-P Test_Google_Analyticsが

関連する問題