Many people, including my friends, often ask me how to change a Windows theme from the command prompt without opening the Explorer window. They want to apply the custom theme they have installed from the command line. Unfortunately, Windows does not provide any native or user-friendly way to change the current theme and apply *.theme file silently. Today, I would like to provide you with an easy-to-use solution - our brand new release: Winaero Theme Switcher.
Winaero Theme Switcher operates with the built-in Theme Manager of Windows 7/Windows 8 and uses it to apply themes.
How to use
The syntax is as follows:
For example, in Windows 8 it can be:
To make the Winaero Theme Switcher app more friendly, I have implemented a "theme lookup" feature: If theme is located in one of the following folders:
C:\Windows\Resources\Easy of Access Themes
then you need not specify the full path to the theme file or even its extension, just specify the file name.
themeswitcher.exe aero - this will apply c:\Windows\Resources\Themes\aero.theme
themeswitcher.exe "Rainbow Colors" - this will apply c:\Users\Sergey\AppData\Local\Microsoft\Windows\Themes\Rainbow Colors\Rainbow Colors.theme which I have installed manually from here.
Note that for themes you share with your friends or downloaded from elsewhere, they are in .themepack format. Themepacks need to be installed first by double clicking them. Thereafter, you can apply the theme.
Download Winaero Theme Switcher
Let us know in the comments if you found Winaero's Theme Switcher useful.
Winaero greatly relies on your support. You can help the site keep bringing you interesting and useful content and software by using these options:
If you like this article, please share it using the buttons below. It won't take a lot from you, but it will help us grow. Thanks for your support!
37 thoughts on “How to change a Windows theme from the command prompt”
Cпасибо! Thank you!
This theme switcher tool is very handy. I use it in my unattended scripts so I can pre-apply theme.
Hi, the tool itself is really handy, but it seems, that I have problem with icons. In theme I need to deploy, there is custom dll file with custom icons. Everything is Ok when I change the theme by clicking on it in Personalize panel or launching .theme file. However, when I use your tool, the icons are not changed :/
Thanks, this helped me overcome group policy restrictions as I accidentally set the high contrast theme and could not get back the basic theme!
Great app, it will do exactly what I need, if I can get by this one problem… It gives me an error when I try and use it from the cmd line, unless I open the app from the gui first. I can’t find any reason for this.
Can you tell me which error you got?
I will try to fix it.
Thank you folks.
I ran it once under a live Windows 7 and it worked surprisingly well. (both quick and silent)
It’s perfect for the system I’m running.
All the very best to you.
Great stuff! I have a set of themes with progressively darker colors and darker background images. By using this program I have created tasks for automatically changing the themes at different times during the day (07.00 “day theme”, 17.00 “evening theme, 21.00 “night theme”).
Is I use %systemroot% or %windir% instead of “c:/”
the program does not work.
Could you check it?
Sorry, my bad. This tool works great.
its a nice tool and works with windows 7, but not, if I connect via remote connection (rdp) to client. is there a way to use it in rdp session?
thanks a lot
I am not able to check it with RDP.
How does it look in RDP?
Does it show you some error?
thanks ! it’s what i was looking for. ;)
You are welcome
So far so good, I’ve made a couple of themes that will be running in a loop.
“You are not allowed to redistribute our software without our permission.”
In case I’d like to share my themes and loop executable: may I pack the Theme Switcher exe along with my bat file, zip or sfx, credits included?
YOU can. You have my personal permissions for this app :)
Thanks a lot!
I really appreciate this :)
Don’t mention it.
Nice tool! But my command promt says ThemeSwitcher.exe is not recognized as an internal or external command.
How can i fix this?
Tested and implemented on Server2012R2 RDS-farm, works fine!
Very nice tool Sergey!
I’m building a bat file that can change the themes automatically using your tool.
Thank you very much for that awesome tool!
I use it to change my Wallpapers when i switch from Extended Mode to Eyefinity Mode with my Triplemonitor setup :)
you are welcome
Im using it as a logon script in windows 2012r2 and users are getting below error:
Theme Switcher has stop working.
Problem Event Name: CLR20r3
Problem Signature 01: ThemeSwitcher.exe
Problem Signature 02: 220.127.116.11
Problem Signature 03: 518a8c9f
Problem Signature 04: mscorlib
Problem Signature 05: 4.6.1085.0
Problem Signature 06: 57a4fc2f
Problem Signature 07: 157f
Problem Signature 08: fd
Problem Signature 09: System.IO.DirectoryNotFound
OS Version: 6.3.9600.2.0.0.144.8
Locale ID: 1033
Additional Information 1: f64b
Additional Information 2: f64b6b59ab6b882af0b9b9fa1b31e1e2
Additional Information 3: 7863
Additional Information 4: 7863d0ce5c4d1337e6e7b82cd97e3e70
Read our privacy statement online:
If the online privacy statement is not available, please read our privacy statement offline:
Any advise ?
I should update the app to avoid these errors. I will do asap.
It is not your problem but mine.
I will release a new version, I will try to do it right now.
Try with version 1.1, I just released it.
Hey, nice tool.
I’m trying to set up my pc so that it randomizes the theme each time I log on.
However, when I use your tool in the command prompt, it only changes the main selection cursor, or it leaves that one unchanged, but changes all the rest of the cursors.
Is this a common problem? Am I doing anything wrong? For now I’m simply typing it into command prompt as show above: “themeswitcher.exe start”
My theme switcher win 8 app is in my user file and I have a Windows 10 PC.
The custom themes are saved the default method the pc saves them with when I open a themepack.
What is ‘start’?
Is it a theme?
Hey! Thank you for this tool. Can you add no error command too? For example if it can’t find the theme won’t give an error. Like this:
themeswitcher.exe theme1.theme /noerr
I’m using the tool in some bat codes and this is an option for user to change theme or not, if there is theme file then it wont show any window.
I will do.
I use this line in a batch file:
If the username includes a space, and try this call:
it fails. only the part of the account name before the first space is used.
This DOES work:
it works but it creates a new .theme file named, “Custom.theme” with DisplayName=Unsaved Theme
and a new ThemeId.
Is there something I should do so the target theme is used and a new Custom.theme is NOT created?
Also, is there an errorcode returned fi themeswitcher fails? I’d like to use this in the batch file:
if errorlevel 1 ThemeSwitcher “%windir%\Resources\Themes\$OEM$.theme”
if errorlevel 1 ThemeSwitcher “%windir%\Resources\Themes\aero.theme”
Would you help me make these work?
I can make it return a errorlevel code.
I need to look why
ThemeSwitcher “%USERNAME%”fails. I think it was not designed to expand the environment string in this mode.
Unfortunately, I cannot prevent the OS from creating Custom.theme.
I have been experimenting about changing the windows theme via command line and I learned that by executing the theme file it is being applied by the Windows 10. So in your batch file you could use one of the following:
Please note the path to the theme files might be needed to adjust depending on your system user configuration. I strongly advise saving your themes with names excluding spaces as it makes much easier moving forward. Executing such line leaving you with the Settings window opened.
To deal with it you could use following VBS script instead:
Set objArgs = Wscript.Arguments
wait = objArgs(0)
line = objArgs(1)
set objWshShell = WScript.CreateObject(“WScript.Shell”)
Above script taking two parameters. First one is the time to wait before the window will be closed in miliseconds. Second one is the command line to execute. Save it in the file with the name exe-wc.vbs then prepare following batch file:
if %1 == dark (
REM ================== Go Dark ==================
echo Applying DARK MODE
echo Windows Theme …
exe-wc.vbs 5000 C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Themes\Dark_Mode.theme
) else (
REM ============== Return to Light ==============
echo Applying LIGHT MODE
echo Windows Theme …
exe-wc.vbs 5000 C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Themes\Light_Mode.theme
REM ================== Goodbye ==================
Please replace “full-path-to-your-exe-wc.vbs-file” with actual path to that file. Please note the path to the theme files might be needed to adjust depending on your system user configuration.
Save above script with the name theme.bat somewhere in your drive.
This batch file taking one parameter which needs to be either “dark” or any other “string”. Then you could prepare two shortcuts to this batch file each with one of the following in the box called “Target” on the “Shortcut” tab in its properties:
a) C:\full-path-to-your-batch-file\theme.bat dark
b) C:\full-path-to-your-batch-file\theme.bat light
Please replace “full-path-to-your-batch-file” with actual path to that file.
Here are links to the videos showing how this works:
a) Going Dark – https://youtu.be/cBcDNhAmfyM
b) Returning to the Lght – https://youtu.be/2kYJaJHubi4
Please note my script in those videos also activating/deactivating the Stylish plug-in for chrome. I have omitted to explain how I accomplished that part as it is not a subject of this article.
Thanks a lot for sharing your hard work!
It’s working fine on the latest version of Windows 10.
Just a quick question though, is there a “Switch” to bypass moving files to the Trash?
I’ve put this on my GPO to set a corporate theme, but the custom theme is filling the Trash everything the script is runned. I’d like to be able to not delete it, or just delete without moving to trash.
But the app doesn’t delete any theme, including the “custom” theme.
Please check carefully what else does that, e.g. using SysInternals Procmon.