0

childprocess.exec の出力を文字列と比較していますが、期待した結果が得られなかったため、何かを見落としていたに違いありません。

function download_all(list, callback){
    var i=0, cmd="";

    function afterDownload(){...}

    while(i<list.length)
    {
        cmd="[ -f ./downloads/"+list[i]+" ] && echo \"E\" || echo\""+list[i]+"\"";
        exec(cmd, function(error, stdout, stderr){
            if(stdout=="E")
            {
                console.log("Already Exist");
            }else{
                console.log("download "+LINK+""+stdout);
                download(LINK+stdout, afterDownload());
            }
        });
        i=i+1;
    }

基本的に、ファイルが存在するかどうかを確認し、コマンドの出力を見て、ファイルが存在することを示す E でない場合はダウンロードします。問題は、ファイルが存在する場合でも、アプリが存在しない LINK+E をダウンロードしようとして失敗することです。

== の代わりに === を、' の代わりに " を試してみましたが、何も変わりませんでした。

E 以外の stdout に文字はありますか?

4

1 に答える 1