diff --git a/src/sbbs3/gitinfo.bat b/src/sbbs3/gitinfo.bat
new file mode 100644
index 0000000000000000000000000000000000000000..63b9bec24281ecdfdae45c7e7155cf4a95a10f91
--- /dev/null
+++ b/src/sbbs3/gitinfo.bat
@@ -0,0 +1,4 @@
+@git log -1 HEAD --format="#define GIT_HASH \"%%h\"" > git_hash.h
+@echo #define GIT_BRANCH ^"| tr -d "\r\n" > git_branch.h
+@git rev-parse --abbrev-ref HEAD | tr -d "\n" >> git_branch.h
+@echo ^" >> git_branch.h
\ No newline at end of file
diff --git a/src/sbbs3/sbbs.vcxproj b/src/sbbs3/sbbs.vcxproj
index e2f04731b4d8d16f830318bcecaaf25e379b4b9f..d71e501bee654dd794ee3e3d579668f54195658f 100644
--- a/src/sbbs3/sbbs.vcxproj
+++ b/src/sbbs3/sbbs.vcxproj
@@ -114,6 +114,9 @@
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <OutputFile>.\msvc.win32.dll.debug/sbbs.bsc</OutputFile>
     </Bscmake>
+    <PreBuildEvent>
+      <Command>gitinfo.bat</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <Midl>
@@ -163,6 +166,9 @@
       <SuppressStartupBanner>true</SuppressStartupBanner>
       <OutputFile>.\msvc.win32.dll.release/sbbs.bsc</OutputFile>
     </Bscmake>
+    <PreBuildEvent>
+      <Command>gitinfo.bat</Command>
+    </PreBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
     <ClCompile Include="..\comio\comio.c" />