#include <stdio.h>
#include <stdlib.h>
const char* const command[] = {
 "C:/Program Files/Microsoft Visual Studio/Common/Tools/UUIDGEN.EXE",
 "\"C:/Program Files/Microsoft Visual Studio/Common/Tools/UUIDGEN.EXE\"",
 "\"C:/Program Files/Microsoft Visual Studio/Common/Tools/UUIDGEN.EXE\" -v",
 "\"C:/Program Files/Microsoft Visual Studio/Common/Tools/UUIDGEN.EXE\" \"-v\"",
};
int main()
{
 for( int i = 0 ; i < sizeof( command ) / sizeof( command[0] ) ; ++i )
 { printf( "-- %d --\n" , i );system( command[i] ); }
 return 0;
}
↑シェルの問題に絞ってこんなのを作ってみた。
で、結果は、

-- 0 --
'C:/Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
-- 1 --
73556378-d75f-4799-895a-5d47e84a2f68
-- 2 --
Microsoft UUID Generator (c) 1992. v1.00

-- 3 --
'C:/Program' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

・・・納得いかん。