diff --git a/ch32v003fun/ch32v003fun.mk b/ch32v003fun/ch32v003fun.mk
index 00ce809be1f30a78e8dc7cf1a8273883ffe6ec9e..2b3b194faf1fcff63d705be1847d2d1762ac87aa 100644
--- a/ch32v003fun/ch32v003fun.mk
+++ b/ch32v003fun/ch32v003fun.mk
@@ -18,6 +18,12 @@ LDFLAGS+=-T $(CH32V003FUN)/ch32v003fun.ld -Wl,--gc-sections -L$(CH32V003FUN)/../
 
 SYSTEM_C:=$(CH32V003FUN)/ch32v003fun.c
 
+ifeq ($(OS),Windows_NT)
+	RM = del /Q /F
+else
+	RM = rm -f
+endif
+
 $(TARGET).elf : $(SYSTEM_C) $(TARGET).c $(ADDITIONAL_C_FILES)
 	$(PREFIX)-gcc -o $@ $^ $(CFLAGS) $(LDFLAGS)
 
@@ -47,5 +53,6 @@ cv_flash : $(TARGET).bin
 	$(MINICHLINK)/minichlink -w $< flash -b
 
 cv_clean :
-	rm -rf $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
+	$(RM) $(TARGET).elf $(TARGET).bin $(TARGET).hex $(TARGET).lst $(TARGET).map $(TARGET).hex
 
+build : $(TARGET).bin
diff --git a/examples/build_all.cmd b/examples/build_all.cmd
new file mode 100644
index 0000000000000000000000000000000000000000..aa685db2007d798187a916c262ec93c5c999a263
--- /dev/null
+++ b/examples/build_all.cmd
@@ -0,0 +1,7 @@
+@echo off
+setlocal
+
+set TARGET=%1
+if [%1]==[] set TARGET=build
+
+for /d %%i in (*) do make --directory=%%i %TARGET%