How to change a Windows theme from the command prompt

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

Winaero Theme Switcher is a lightweight portable tool available for Windows 7 and Windows 8. It has a GUI, but it is primarily intended to be used with the command prompt or in a batch file where you want to automate the applying of a custom theme.

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:

ThemeSwitcher.exe path_to_file.theme

For example, in Windows 8 it can be:

themeswitcher.exe c:\Windows\Resources\Themes\theme1.theme

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\Themes
C:\Windows\Resources\Easy of Access Themes
C:\Users\<username>\AppData\Local\Microsoft\Windows\Themes

then you need not specify the full path to the theme file or even its extension, just specify the file name.

Examples:

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.

In action:

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.

35 thoughts on “How to change a Windows theme from the command prompt

  1. Joco1114

    Cпасибо! Thank you!

    Reply
  2. Bobolonius

    This theme switcher tool is very handy. I use it in my unattended scripts so I can pre-apply theme.

    Reply
  3. Ondra

    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 :/

    Reply
  4. Joe Bloggs

    Thanks, this helped me overcome group policy restrictions as I accidentally set the high contrast theme and could not get back the basic theme!

    Reply
  5. Jason Woodard

    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.

    Reply
    1. Sergey Tkachenko Post author

      Can you tell me which error you got?
      I will try to fix it.

      Reply
  6. Gypsy

    Thank you folks.

    Love It.

    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.

    Reply
  7. Juanito

    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”).

    Reply
  8. Facundo

    Is I use %systemroot% or %windir% instead of “c:/”
    the program does not work.
    Could you check it?
    Thanks.

    Reply
    1. Facundo

      Sorry, my bad. This tool works great.
      Thanks.

      Reply
  9. frank

    Hi,
    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

    greetings
    frank

    Reply
    1. Sergey Tkachenko Post author

      Hi frank
      I am not able to check it with RDP.
      How does it look in RDP?
      Does it show you some error?

      Reply
  10. Karan

    thanks ! it’s what i was looking for. ;)

    Reply
    1. Sergey Tkachenko Post author

      You are welcome

      Reply
      1. Hopachi

        So far so good, I’ve made a couple of themes that will be running in a loop.

        I read:
        “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?
        Thanks again!

        Reply
        1. Sergey Tkachenko Post author

          YOU can. You have my personal permissions for this app :)

          Reply
          1. Hopachi

            Thanks a lot!
            I really appreciate this :)

          2. Sergey Tkachenko Post author

            Don’t mention it.

  11. Aiko Vandeputte

    Nice tool! But my command promt says ThemeSwitcher.exe is not recognized as an internal or external command.
    How can i fix this?

    Reply
  12. Jos Lemmerling

    Tested and implemented on Server2012R2 RDS-farm, works fine!

    Thanks!

    Reply
  13. Hopachi

    Very nice tool Sergey!
    I’m building a bat file that can change the themes automatically using your tool.
    Cheers!

    Reply
    1. Sergey Tkachenko Post author

      Thanks!

      Reply
  14. Haldi

    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 :)

    Reply
    1. Sergey Tkachenko Post author

      you are welcome

      Reply
  15. RamPc

    Hello,

    Im using it as a logon script in windows 2012r2 and users are getting below error:
    Theme Switcher has stop working.

    Problem signature:
    Problem Event Name: CLR20r3
    Problem Signature 01: ThemeSwitcher.exe
    Problem Signature 02: 1.0.0.1
    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:
    http://go.microsoft.com/fwlink/?linkid=280262

    If the online privacy statement is not available, please read our privacy statement offline:
    C:\windows\system32\en-US\erofflps.txt

    Any advise ?

    Thanks.

    Reply
    1. Sergey Tkachenko Post author

      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.

      Reply
      1. Sergey Tkachenko Post author

        aaand fixed!
        Try with version 1.1, I just released it.

        Reply
  16. Luke

    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.

    Thanks

    Reply
    1. Sergey Tkachenko Post author

      What is ‘start’?
      Is it a theme?

      Reply
  17. aysum

    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.

    Reply
    1. Sergey Tkachenko Post author

      I will do.

      Reply
  18. Fred Thompson

    I use this line in a batch file:

    If the username includes a space, and try this call:

    ThemeSwitcher “%USERNAME%”

    it fails. only the part of the account name before the first space is used.

    This DOES work:

    ThemeSwitcher “%LOCALAPPDATA%\Microsoft\Windows\Themes\%USERNAME%.theme”

    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:

    ThemeSwitcher “%LOCALAPPDATA%\Microsoft\Windows\Themes\%USERNAME%.theme”
    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?

    Reply
    1. Sergey Tkachenko Post author

      Hi
      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.

      Reply
  19. Arnold

    Hello Everyone,
    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:
    a) C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Themes\Dark_Mode.theme
    b) C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Themes\Light_Mode.theme
    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:
    Option Explicit
    Dim objArgs
    Dim objWshShell
    Dim line
    Dim wait
    Set objArgs = Wscript.Arguments
    wait = objArgs(0)
    line = objArgs(1)
    set objWshShell = WScript.CreateObject(“WScript.Shell”)
    objWshShell.Run line
    WScript.Sleep wait
    objWshShell.SendKeys “%{F4}”
    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:
    @echo off
    cd C:\full-path-to-your-exe-wc.vbs-file
    if %1 == dark (
    REM ================== Go Dark ==================
    color 09
    echo.
    echo Applying DARK MODE
    echo Windows Theme …
    exe-wc.vbs 5000 C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Themes\Dark_Mode.theme
    echo DONE
    ) else (
    REM ============== Return to Light ==============
    color 30
    echo.
    echo Applying LIGHT MODE
    echo Windows Theme …
    exe-wc.vbs 5000 C:\Users\%USERNAME%\AppData\Local\Microsoft\Windows\Themes\Light_Mode.theme
    echo DONE
    )
    REM ================== Goodbye ==================
    echo.
    echo Goodbye
    cls
    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.

    Reply
    1. Sergey Tkachenko Post author

      Thanks a lot for sharing your hard work!

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *