Я пытаюсь написать пакетный скрипт, который меняет схему окна.
Проблема в том, что что-то идет не так. Скрипт печатает:
Invalid format.
Hint: <paramlist> = <param> [, <paramlist>].
Как я бегу:
@echo off
set "command=rundll32.exe %SystemRoot%\system32\shell32.dll,Control_RunDLL %SystemRoot%\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:\C:\Windows\Resources\Themes\aero.theme\"
set pid=0
for /f "tokens=2 delims==; " %%a in ('wmic process call create "%command%"^,"%~dp0." ^| find "ProcessId"') do set pid=%%a
echo %pid%
timeout 2
taskkill /pid %pid%
Если я установлю command=notepad.exe
, скрипт будет работать нормально. Я предполагаю, что неправильно форматирую параметр command
но не могу понять, что нужно, чтобы сделать эту интерпретацию понятной.
Кажется, просто работает следующее:
> wmic process call create "rundll32.exe %SystemRoot%\shell32.dll"
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ProcessId = 10980;
ReturnValue = 0;
};
но просто добавление Control_RunDLL
в качестве параметра, кажется, вызывает проблему:
> wmic process call create "rundll32.exe %SystemRoot%\shell32.dll,Control_RunDLL"
Executing (Win32_Process)->Create()
Method execution successful.
Out Parameters:
instance of __PARAMETERS
{
ReturnValue = 9;
};