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...