-5

system()C++を使用して、以下のバッチ ファイル コマンドを実行する必要があります。ただし、コマンドを正しく取得できませんでした。

以下のコマンドを C++ で適切な構文で記述するにはどうすればよいですか?

CALL install\setup.exe /s /v" /qn "KEY=0000-0000-0000-0000-0000" SHORTCUT=0 INSTALLDIR=\"C:\\Program Files\\Install\\Setup\" /l+*v "%SYSTEMROOT%\Setup.log""

以下は私のC++コードです。

int main()
{
    system("\"install\setup.exe\" /s /v /qn KEY=0000-0000-0000-0000-0000 SHORTCUT=0     INSTALLDIR=\ C:\\Program Files\\Install\\Setup\ /l+*v %SYSTEMROOT%\\Setup.log");      
    system("\"C:\\Program Files\\install\\Setup\\setup.exe\" no");   
    system("\"C:\\Program Files\\install\\Setup\\setup.exe\" adder add -y Administrator");    
    system("\"C:\\Program Files\\install\\Setup\\setup.exe\" adder add -y user1");    
    system("\"C:\\Program Files\\install\\Setup\\setup.exe\" adder add -t Device run.exe");    
}
4

1 に答える 1

2

\の場合と同様に、文字をエスケープする必要があります"。これは事実上、それらを2倍にする必要があることを意味し、次のような恐ろしい結果になります:

system("\"install\\setup.exe\" ... INSTALLDIR=\\\"C:\\\\Program Files\\\\Inst...

いくつかのパラメーターから始めて、機能していることを確認したら、残りのパラメーターを徐々に追加することをお勧めします。を見逃したときのデバッグが容易になります\

于 2013-05-23T05:08:25.250 に答える