Obteniendo el error "Formato inválido" al ejecutar un ejecutable con parámetros

0

Estoy tratando de escribir un script por lotes que cambia el esquema de la ventana.

El problema parece que algo sale mal. El guión imprime:

Invalid format.                                                                                                         
Hint: <paramlist> = <param> [, <paramlist>].    

Mientras corro:

@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%

Si configuro command=notepad.exe, el script funciona bien. Supongo que estoy formateando el commandparámetro incorrectamente, pero no puedo entender qué se necesita para que esto sea interpretable.


Simplemente ejecutar lo siguiente parece funcionar:

> 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;
};

pero solo agregar Control_RunDLLcomo parámetro parece causar un problema:

> 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;
};
nombre para mostrar
fuente
Creo que los parámetros no son parte de este argumento, ya que presenta ejecutable.
Qwertiy
@Qwertiy ¿Alguna idea de cómo podría comenzar mi command?
mostrar