Adicionar registro com script cmd
Sep 13 2020
Eu quero definir o modo de compatibilidade via cmd e, portanto, criei um script em lote (consulte o código) que adiciona um registro ao arquivo .exe no diretório atual. O único problema é que quando eu uso "%CD%\Launcher.exe"o nome do registro (caminho) está configurado errado ->C:\Users\USER\Desktop\Games\NEWFOL~1\Launcher.exe
Mas quando eu digito o caminho completo para o script, o nome do registro está correto. Por que isso acontece e como você conserta isso?
Este é o meu script:
@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
Respostas
1 ItWasn'tMe Sep 15 2020 at 21:00
Você precisa adicionar escape \ "aspas \" :
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v \""%CD%\Launcher.exe"\" /t REG_SZ /d \"WIN98 256COLOR 640X480\" /f
Ou, apenas no seu caminho, porque não tenho certeza se "WIN98 256COLOR 640X480"vai precisar de escape para definir esses parâmetros ...
<con: REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v \""%CD%\Launcher.exe"\" /t REG_SZ /d "WIN98 256COLOR 640X480" /fO que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
Christopher Nolan uma vez se arrependeu de ter lido o 'roteiro de Pulp Fiction' de Quentin Tarantino