Update path-installer.ps1

This commit is contained in:
2025-11-03 14:40:34 -06:00
parent 2a2c2958d3
commit 821f79cf72

View File

@@ -3,33 +3,61 @@ $ComandoNombre = "safecloud-run.cmd"
$URLGiteaBase = "https://recursos.safecloud.mx/support/scripts/raw/branch/main/" $URLGiteaBase = "https://recursos.safecloud.mx/support/scripts/raw/branch/main/"
$RutaCompleta = Join-Path $RutaBase $ComandoNombre $RutaCompleta = Join-Path $RutaBase $ComandoNombre
# Contenido de safecloud-run.cmd (Sintaxis 100% LIMPIA) # Contenido de safecloud-run.cmd (Versión 2.0 - Soporta .ps1)
# Los % se escriben literal. PowerShell no los interpreta.
$ScriptContent = @" $ScriptContent = @"
@echo off @echo off
set "BASE_URL=$URLGiteaBase" set "BASE_URL=$URLGiteaBase"
:: 1. Validar si se paso un argumento
if "%1"=="" ( goto :eof ) if "%1"=="" ( goto :eof )
set "SCRIPT_NAME=%1" set "SCRIPT_NAME=%1"
set "SCRIPT_EXTENSION=%~x1"
set "FULL_URL=%BASE_URL%%SCRIPT_NAME%" set "FULL_URL=%BASE_URL%%SCRIPT_NAME%"
set "TEMP_FILE=%TEMP%\safecloud_temp_%RANDOM%_%SCRIPT_NAME%" set "TEMP_FILE=%TEMP%\safecloud_temp_%RANDOM%_%SCRIPT_NAME%"
:: 2. Descargar el script
curl -sL "%FULL_URL%" > "%TEMP_FILE%" curl -sL "%FULL_URL%" > "%TEMP_FILE%"
if not exist "%TEMP_FILE%" ( goto :CLEANUP ) 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 :CLEANUP
del "%TEMP_FILE%" 2>nul del "%TEMP_FILE%" 2>nul
goto :eof 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 New-Item -Path $RutaBase -ItemType Directory -Force | Out-Null
Set-Content -Path $RutaCompleta -Value $ScriptContent -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") $PathActual = [Environment]::GetEnvironmentVariable("Path", "Machine")
if ($PathActual -notlike "*$RutaBase*") { if ($PathActual -notlike "*$RutaBase*") {
$NuevoPath = "$PathActual;$RutaBase" $NuevoPath = "$PathActual;$RutaBase"
[Environment]::SetEnvironmentVariable("Path", $NuevoPath, "Machine") [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" cmd /c "setx Path ""$NuevoPath"" /M >nul"
} }