Registrierung mit cmd-Skript hinzufügen

Sep 13 2020

Ich möchte den Kompatibilitätsmodus über cmd einstellen und habe daher ein Batch-Skript (siehe Code) erstellt, das der EXE-Datei im aktuellen Verzeichnis eine Registrierung hinzufügt. Das einzige Problem ist, wenn ich "%CD%\Launcher.exe"den Registrierungsnamen (Pfad) verwende, der falsch eingestellt ist ->C:\Users\USER\Desktop\Games\NEWFOL~1\Launcher.exe

Wenn ich jedoch den vollständigen Pfad zum Skript eingebe, ist der Registrierungsname korrekt. Warum ist das so und wie behebt man das?

Das ist mein Skript:

@echo off

:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
    IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params= %*
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params:"=""%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------      
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%CD%\Launcher.exe" /t REG_SZ /d "WIN98 256COLOR 640X480" /f
exit

Antworten

1 ItWasn'tMe Sep 15 2020 at 21:00

Sie müssen Escape "Anführungszeichen" hinzufügen :

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v \""%CD%\Launcher.exe"\" /t REG_SZ /d \"WIN98 256COLOR 640X480\" /f

Oder nur auf Ihrem Weg, weil ich nicht sicher bin, ob ein "WIN98 256COLOR 640X480"Escapezeichen erforderlich ist, um diese Parameter einzustellen ...

<con: REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v \""%CD%\Launcher.exe"\" /t REG_SZ /d "WIN98 256COLOR 640X480" /f