

**環境**  
クライアントOS：Windows10 Pro（1809）  
ブラウザIE11

### 質問

HTMLファイルにJavaScriptを埋め込み、ActiveXObjectを活用して以下のコマンドから7zipでパスワードファイル付きzipファイルを作成した後、元ネタのテキストファイルを削除する処理を実行しています。

・ソースイメージ  
※ダブルクォーテーションなどはイメージなのでテキトーです。

[code]

    var cmd = "cmd /c C:\Program Files\7-Zip\7z.exe a -pPassword compress.zip fileA";
    wsh.Exec(cmd);
    fso.DeleteFile(fileA, true);
    
[/code]

この時出来上がったzipファイルにパスワードがかかりません。  
ただし、元のテキストファイルを消し忘れていた時は問題なくかかっていました。  
元のテキストファイルを削除する処理を実装したとたんにパスワードがかからなくなってしまいました。

原因及び対処法をご教示いただけないでしょうか？  
宜しくお願いいたします。


CC BY-SA 4.0
2022-01-18T02:32:23.153
85768
2022-01-18T06:00:45.930
2022-01-18T03:13:14.630
3060
50955
question
javascript コマンドプロンプト
JavaScriptで生成したパスワード付zipファイルにパスワードがかからない


`Exec()`
は、実行したコマンドの終了を待たずに次の文を実行するため、`Exec()`の直後に対象ファイルを削除すると上手くzipを作ることができません。

`Exec()` でコマンド終了を待つ方法は[公式のドキュメント](https://docs.microsoft.com/ja-jp/previous-
versions/windows/scripting/cc364356\(v=msdn.10\)?redirectedfrom=MSDN)に記載があります。また、`Run()`
にはコマンド終了を待つフラグがあります。

[code]

    var oExec = WshShell.Exec("calc");
    
    while (oExec.Status == 0)
    {
         WScript.Sleep(100);
    }
    
    WScript.Echo(oExec.Status);
    
[/code]


CC BY-SA 4.0
2022-01-18T06:00:45.930
85773
2022-01-18T06:00:45.930
3475
85768
answer