$RutaBase = "C:\TEMP" $ComandoNombre = "safecloud-run.cmd" $URLGiteaBase = "https://recursos.safecloud.mx/support/scripts/raw/branch/main/" $RutaCompleta = Join-Path $RutaBase $ComandoNombre $ScriptContent = @" @echo off set "BASE_URL=$URLGiteaBase" if "%1"=="" ( goto :eof ) set "SCRIPT_NAME=%1" set "FULL_URL=%BASE_URL%%%SCRIPT_NAME%%" :: CORRECCION CRITICA: Uso de la variable TEMP local set "TEMP_FILE=%TEMP%\safecloud_temp_%%RANDOM%%_%%SCRIPT_NAME%%" curl -sL "%%FULL_URL%%" > "%%TEMP_FILE%%" if not exist "%%TEMP_FILE%%" ( goto :CLEANUP ) call "%%TEMP_FILE%%" :CLEANUP del "%%TEMP_FILE%%" 2>nul goto :eof "@ # 1. Creación 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 $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 sin reiniciar cmd /c "setx Path ""$NuevoPath"" /M >nul" }