2025-11-03 12:22:23 -06:00
|
|
|
$RutaBase = "C:\TEMP"
|
|
|
|
|
$ComandoNombre = "safecloud-run.cmd"
|
|
|
|
|
$URLGiteaBase = "https://recursos.safecloud.mx/support/scripts/raw/branch/main/"
|
|
|
|
|
$RutaCompleta = Join-Path $RutaBase $ComandoNombre
|
|
|
|
|
|
2025-11-03 14:40:34 -06:00
|
|
|
# Contenido de safecloud-run.cmd (Versión 2.0 - Soporta .ps1)
|
2025-11-03 12:22:23 -06:00
|
|
|
$ScriptContent = @"
|
|
|
|
|
@echo off
|
|
|
|
|
set "BASE_URL=$URLGiteaBase"
|
2025-11-03 14:40:34 -06:00
|
|
|
|
|
|
|
|
:: 1. Validar si se paso un argumento
|
2025-11-03 14:13:19 -06:00
|
|
|
if "%1"=="" ( goto :eof )
|
2025-11-03 12:22:23 -06:00
|
|
|
set "SCRIPT_NAME=%1"
|
2025-11-03 14:40:34 -06:00
|
|
|
set "SCRIPT_EXTENSION=%~x1"
|
2025-11-03 14:31:03 -06:00
|
|
|
set "FULL_URL=%BASE_URL%%SCRIPT_NAME%"
|
|
|
|
|
set "TEMP_FILE=%TEMP%\safecloud_temp_%RANDOM%_%SCRIPT_NAME%"
|
2025-11-03 14:40:34 -06:00
|
|
|
|
|
|
|
|
:: 2. Descargar el script
|
2025-11-03 14:31:03 -06:00
|
|
|
curl -sL "%FULL_URL%" > "%TEMP_FILE%"
|
|
|
|
|
if not exist "%TEMP_FILE%" ( goto :CLEANUP )
|
2025-11-03 14:40:34 -06:00
|
|
|
|
|
|
|
|
:: 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%
|
|
|
|
|
|
2025-11-03 12:22:23 -06:00
|
|
|
:CLEANUP
|
2025-11-03 14:31:03 -06:00
|
|
|
del "%TEMP_FILE%" 2>nul
|
2025-11-03 12:22:23 -06:00
|
|
|
goto :eof
|
|
|
|
|
"@
|
|
|
|
|
|
2025-11-03 14:40:34 -06:00
|
|
|
# --- Logica de Instalacion (Sin cambios) ---
|
|
|
|
|
|
|
|
|
|
# 1. Creacion de la carpeta y el archivo CMD (C:\TEMP)
|
2025-11-03 12:22:23 -06:00
|
|
|
New-Item -Path $RutaBase -ItemType Directory -Force | Out-Null
|
|
|
|
|
Set-Content -Path $RutaCompleta -Value $ScriptContent -Force | Out-Null
|
|
|
|
|
|
2025-11-03 14:40:34 -06:00
|
|
|
# 2. Modificacion del PATH del Sistema
|
2025-11-03 12:22:23 -06:00
|
|
|
$PathActual = [Environment]::GetEnvironmentVariable("Path", "Machine")
|
|
|
|
|
if ($PathActual -notlike "*$RutaBase*") {
|
|
|
|
|
$NuevoPath = "$PathActual;$RutaBase"
|
|
|
|
|
[Environment]::SetEnvironmentVariable("Path", $NuevoPath, "Machine")
|
|
|
|
|
|
2025-11-03 14:40:34 -06:00
|
|
|
# Uso de SETX para forzar la actualizacion del PATH
|
2025-11-03 12:22:23 -06:00
|
|
|
cmd /c "setx Path ""$NuevoPath"" /M >nul"
|
|
|
|
|
}
|