@@ -436,7 +436,8 @@ std::string build_command_prefix(const Env& env) {
436436 std::string newPath = xvmBin + " ;" + (std::getenv (" PATH" ) ? std::getenv (" PATH" ) : " " );
437437 _putenv_s (" PATH" , newPath.c_str ());
438438 }
439- return shq (env.binary .string ());
439+ // Return raw path — no quoting to avoid cmd.exe double-quote parsing issues
440+ return env.binary .string ();
440441#else
441442 if (env.projectDir .empty ()) {
442443 // Global mode: unset XLINGS_PROJECT_DIR (existing behavior).
@@ -463,7 +464,7 @@ std::string build_interface_command(const Env& env,
463464 std::string_view capability,
464465 std::string_view argsJson) {
465466#if defined(_WIN32)
466- return std::format (" {} interface {} --args {} 2>nul " ,
467+ return std::format (" {} interface {} --args {}" ,
467468 build_command_prefix (env), capability, shq (argsJson));
468469#else
469470 return std::format (" {} interface {} --args {} 2>/dev/null" ,
@@ -662,7 +663,7 @@ int install_with_progress(const Env& env, std::string_view target,
662663#if defined(_WIN32)
663664 _putenv_s (" XLINGS_HOME" , env.home .string ().c_str ());
664665 _putenv_s (" XLINGS_PROJECT_DIR" , " " );
665- auto cmd = std::format (" {} interface install_packages --args {} 2>nul " ,
666+ auto cmd = std::format (" {} interface install_packages --args {}" ,
666667 shq (env.binary .string ()),
667668 shq (argsJson));
668669#else
@@ -792,8 +793,7 @@ void ensure_init(const Env& env, bool quiet) {
792793#if defined(_WIN32)
793794 _putenv_s (" XLINGS_HOME" , env.home .string ().c_str ());
794795 _putenv_s (" XLINGS_PROJECT_DIR" , " " );
795- auto cmd = std::format (" {} self init >nul 2>&1" ,
796- shq (env.binary .string ()));
796+ auto cmd = env.binary .string () + " self init" ;
797797#else
798798 auto cmd = std::format (
799799 " cd {} && env -u XLINGS_PROJECT_DIR XLINGS_HOME={} {} self init >/dev/null 2>&1" ,
0 commit comments