diff --git a/appveyor.yml b/appveyor.yml
index 4ee5e77e51a6ac0c9af6d0ef0b8de3bc839e8ec7..352af58a013d3a11a411c602acafaa5b63d8f072 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -17,23 +17,20 @@ environment:
       CMAKE_GENERATOR: Visual Studio 14 2015 Win64
       VC_VARS_ARCH: amd64
 
+# Parameters for default build commands (build_script is used instead).
+build:
+
 install:
-- set PATH=%QTDIR%\bin;%PATH%
-- set CMAKE_PREFIX_PATH=%QTDIR%\lib\cmake
-# Note: Following also removes sh.exe from PATH so that CMake can generate MinGW Makefile.
-- if NOT [%MINGW_PATH%] == [] set PATH=%MINGW_PATH%\bin;%PATH:C:\Program Files\Git\usr\bin;=%
-- if [%VC_VARS_ARCH%] == [] call "%VCINSTALLDIR%\vcvarsall.bat" %VC_VARS_ARCH%
+- utils\appveyor\install.bat
 
 before_build:
-- utils\appveyor-before-build.bat
-
-build:
+- utils\appveyor\before_build.bat
 
 build_script:
-- cmake --build build/ --config Release
+- utils\appveyor\build_script.bat
 
 after_build:
-- utils\appveyor-after-build.bat
+- utils\appveyor\after_build.bat
 
 artifacts:
 - path: 'copyq*.zip'
diff --git a/utils/appveyor-after-build.bat b/utils/appveyor/after_build.bat
similarity index 100%
rename from utils/appveyor-after-build.bat
rename to utils/appveyor/after_build.bat
diff --git a/utils/appveyor-before-build.bat b/utils/appveyor/before_build.bat
similarity index 100%
rename from utils/appveyor-before-build.bat
rename to utils/appveyor/before_build.bat
diff --git a/utils/appveyor/build_script.bat b/utils/appveyor/build_script.bat
new file mode 100644
index 0000000000000000000000000000000000000000..b58c07afc6aed1c76e457d7d4847a413997a1d28
--- /dev/null
+++ b/utils/appveyor/build_script.bat
@@ -0,0 +1 @@
+cmake --build build/ --config Release
diff --git a/utils/appveyor/install.bat b/utils/appveyor/install.bat
new file mode 100644
index 0000000000000000000000000000000000000000..0849cd073f6b361888b8fe2698ce1c4ec127045d
--- /dev/null
+++ b/utils/appveyor/install.bat
@@ -0,0 +1,6 @@
+set PATH=%QTDIR%\bin;%PATH%
+set CMAKE_PREFIX_PATH=%QTDIR%\lib\cmake
+
+REM Note: Following removes sh.exe from PATH so that CMake can generate MinGW Makefile.
+if NOT [%MINGW_PATH%] == [] set PATH=%MINGW_PATH%\bin;%PATH:C:\Program Files\Git\usr\bin;=%
+if [%VC_VARS_ARCH%] == [] call "%VCINSTALLDIR%\vcvarsall.bat" %VC_VARS_ARCH%