if ! type "include" > /dev/null 2>&1; then include() { . "$(cd "$(dirname "$1")" && pwd)/${2}"; }; fi include "${BASH_SOURCE[0]}" ../pragma_once.bash if ! pragma_once ${BASH_SOURCE[0]}; then return 0; fi include "${BASH_SOURCE[0]}" ./global_rely/export.bash include "${BASH_SOURCE[0]}" ./other.bash run_native_cmd_script() { local workdir="$1" local cmd_body="$2" local mode="${3:-c}" local win_workdir local tmp_cmd local win_tmp_cmd [[ -n "$workdir" && -n "$cmd_body" ]] || { echo "[ERROR] 用法: run_native_cmd_script [c|k]" >&2 return 1 } [[ -d "$workdir" ]] || { echo "[ERROR] 工作目录不存在: $workdir" >&2 return 1 } [[ "$mode" == "c" || "$mode" == "k" ]] || { echo "[ERROR] mode 只能是 c 或 k" >&2 return 1 } win_workdir="$(cygpath -aw "$workdir")" || return 1 tmp_cmd="$(mktemp --suffix=.cmd)" || { echo "[ERROR] 创建临时 cmd 文件失败" >&2 return 1 } cat > "$tmp_cmd" <&2 return 1 } bat_dir="$(dirname "$bat_path")" bat_name="$(basename "$bat_path")" run_native_cmd_script "$bat_dir" "call \"$bat_name\"" "$mode" } # 用原生 Windows 环境执行 bat # # 用法: # run_bat_native_env "/d/cef_builds/cef_4_3_840/depot_tools/update_depot_tools.bat" # run_bat_native_env "/d/cef_builds/cef_4_3_840/depot_tools/update_depot_tools.bat" "k" # # 说明: # 1. 默认用 /c,执行完退出 # 2. 传 k 时,用 /k,执行完保留 cmd 窗口