fix duplicate mkdir in update_file_lists.sh

- merge loop for .h and .proto includes
- fix shellcheck errors
diff --git a/update_file_lists.sh b/update_file_lists.sh
index 37aa996..646c8ce 100755
--- a/update_file_lists.sh
+++ b/update_file_lists.sh
@@ -128,26 +128,15 @@
 
 # Generate extract_includes.bat
 echo "mkdir include" > $EXTRACT_INCLUDES_BAT
-for HEADER in $PUBLIC_HEADERS; do
-  HEADER_DIR=$(dirname $HEADER)
-  while [ ! "$HEADER_DIR" = "." ]; do
-    echo $HEADER_DIR | sed "s/\\//\\\\/g"
-    HEADER_DIR=$(dirname $HEADER_DIR)
-  done
-done | sort | uniq | sed "s/^/mkdir include\\\\/" >> $EXTRACT_INCLUDES_BAT
-for HEADER in $PUBLIC_HEADERS; do
-  WINPATH=$(echo $HEADER | sed 's;/;\\;g')
-  echo "copy \"\${PROTOBUF_SOURCE_WIN32_PATH}\\..\\src\\$WINPATH\" include\\$WINPATH" >> $EXTRACT_INCLUDES_BAT
-done
-for PROTO in ${WKT_PROTOS}; do
-  PROTO_DIR=$(dirname "$PROTO")
-  while [ ! "$PROTO_DIR" = "." ]; do
-    echo "mkdir include\\${PROTO_DIR//\//\\}"
-    PROTO_DIR=$(dirname "$PROTO_DIR")
+for INCLUDE in $PUBLIC_HEADERS $WKT_PROTOS; do
+  INCLUDE_DIR=$(dirname "$INCLUDE")
+  while [ ! "$INCLUDE_DIR" = "." ]; do
+    echo "mkdir include\\${INCLUDE_DIR//\//\\}"
+    INCLUDE_DIR=$(dirname "$INCLUDE_DIR")
   done
 done | sort | uniq >> $EXTRACT_INCLUDES_BAT
-for PROTO in $WKT_PROTOS; do
-  WINPATH=${PROTO//\//\\}
+for INCLUDE in $PUBLIC_HEADERS $WKT_PROTOS; do
+  WINPATH=${INCLUDE//\//\\}
   echo "copy \"\${PROTOBUF_SOURCE_WIN32_PATH}\\..\\src\\$WINPATH\" include\\$WINPATH" >> $EXTRACT_INCLUDES_BAT
 done