#!/usr/bin/env bash # launch_cpp_app_windows — Lanza un .exe en Windows desde WSL2 via cmd.exe /c start. # Asume que el exe ya fue copiado por deploy_cpp_exe_to_windows al escritorio. launch_cpp_app_windows() { local app="${1:-}" local desktop_dir="${2:-/mnt/c/Users/lucas/Desktop}" if [ -z "$app" ]; then echo "ERROR: uso: launch_cpp_app_windows [desktop_dir]" >&2 return 1 fi local exe_path="$desktop_dir/apps/$app/$app.exe" if [ ! -f "$exe_path" ]; then echo "ERROR: exe no encontrado: $exe_path" >&2 echo "Copia primero con: deploy_cpp_exe_to_windows $app " >&2 return 1 fi # Usamos PowerShell en vez de cmd.exe — los backslashes de paths Windows # no rompen el escaping aqui (cmd.exe `\"` interpreta como escape de # comilla y deja el string sin cerrar; PowerShell single-quote es literal). local win_app_dir win_exe win_app_dir=$(wslpath -w "$desktop_dir/apps/$app") win_exe="$win_app_dir\\$app.exe" # Start-Process detacha (equivale a `start` de cmd) y respeta -WorkingDirectory. # Las comillas simples en PowerShell son literales — no procesa \ ni $. powershell.exe -NoProfile -Command \ "Start-Process -FilePath '$win_exe' -WorkingDirectory '$win_app_dir'" \ >/dev/null 2>&1 local ts ts=$(date '+%Y-%m-%dT%H:%M:%S') echo "OK: $app launched at $ts" } if [ "${BASH_SOURCE[0]}" = "$0" ]; then launch_cpp_app_windows "$@" fi