Obtenir l'erreur «Format invalide» lors de l'exécution d'un exécutable avec des paramètres

0

J'essaie d'écrire un script batch qui modifie le schéma de fenêtre.

Le problème semble que quelque chose ne va pas. Le script imprime:

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

Comme je cours:

@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 je règle command=notepad.exe, le script fonctionne bien. Je suppose que le commandparamètre est mal formaté, mais je ne peux pas comprendre ce qu'il faut pour rendre ce paramètre interprétable.


Exécuter simplement ce qui suit semble fonctionner:

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

mais le simple ajout Control_RunDLLd'un paramètre semble poser un problème:

> 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;
};
Afficher un nom
la source
Je pense que les paramètres ne font pas partie de cet argument car il présente l'exécutable.
Qwertiy
@ Qwertiy Toute idée de quelle autre façon je pourrais commencer mon command?
Nom du