From 821f79cf7295aefb4d5c8b755b219c2030f46b01 Mon Sep 17 00:00:00 2001 From: Eduardo Mosqueda Date: Mon, 3 Nov 2025 14:40:34 -0600 Subject: [PATCH] Update path-installer.ps1 --- path-installer.ps1 | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/path-installer.ps1 b/path-installer.ps1 index 22aaec1..cf6fe25 100644 --- a/path-installer.ps1 +++ b/path-installer.ps1 @@ -3,33 +3,61 @@ $ComandoNombre = "safecloud-run.cmd" $URLGiteaBase = "https://recursos.safecloud.mx/support/scripts/raw/branch/main/" $RutaCompleta = Join-Path $RutaBase $ComandoNombre -# Contenido de safecloud-run.cmd (Sintaxis 100% LIMPIA) -# Los % se escriben literal. PowerShell no los interpreta. +# Contenido de safecloud-run.cmd (Versión 2.0 - Soporta .ps1) $ScriptContent = @" @echo off set "BASE_URL=$URLGiteaBase" + +:: 1. Validar si se paso un argumento if "%1"=="" ( goto :eof ) set "SCRIPT_NAME=%1" +set "SCRIPT_EXTENSION=%~x1" set "FULL_URL=%BASE_URL%%SCRIPT_NAME%" set "TEMP_FILE=%TEMP%\safecloud_temp_%RANDOM%_%SCRIPT_NAME%" + +:: 2. Descargar el script curl -sL "%FULL_URL%" > "%TEMP_FILE%" if not exist "%TEMP_FILE%" ( goto :CLEANUP ) -call "%TEMP_FILE%" + +:: 3. Logica de Ejecucion (NUEVO) +echo [SafeCloud] Ejecutando %SCRIPT_NAME%... + +:: Si la extension es .ps1, ejecutar con PowerShell +if /I "%SCRIPT_EXTENSION%"==".ps1" ( + powershell.exe -ExecutionPolicy Bypass -File "%TEMP_FILE%" + goto :CLEANUP +) + +:: Si la extension es .cmd o .bat (o desconocida), ejecutar con CALL +if /I "%SCRIPT_EXTENSION%"==".cmd" ( + call "%TEMP_FILE%" + goto :CLEANUP +) +if /I "%SCRIPT_EXTENSION%"==".bat" ( + call "%TEMP_FILE%" + goto :CLEANUP +) + +:: Fallback por si la extension no es ninguna de las anteriores +echo [Error] Extension de archivo no soportada: %SCRIPT_EXTENSION% + :CLEANUP del "%TEMP_FILE%" 2>nul goto :eof "@ -# 1. Creación de la carpeta y el archivo CMD (C:\TEMP) +# --- Logica de Instalacion (Sin cambios) --- + +# 1. Creacion de la carpeta y el archivo CMD (C:\TEMP) New-Item -Path $RutaBase -ItemType Directory -Force | Out-Null Set-Content -Path $RutaCompleta -Value $ScriptContent -Force | Out-Null -# 2. Modificación del PATH del Sistema +# 2. Modificacion del PATH del Sistema $PathActual = [Environment]::GetEnvironmentVariable("Path", "Machine") if ($PathActual -notlike "*$RutaBase*") { $NuevoPath = "$PathActual;$RutaBase" [Environment]::SetEnvironmentVariable("Path", $NuevoPath, "Machine") - # Uso de SETX para forzar la actualización del PATH + # Uso de SETX para forzar la actualizacion del PATH cmd /c "setx Path ""$NuevoPath"" /M >nul" } \ No newline at end of file