TeamCity to read and update version number from version file
For your first question: yes, it's possible:
- Add .git(.svn, .hg etc) directory to VCS rules
- Read version number in your build script in teamcity(command line runner) in your favorite scripting language and incerement it.
- Set build number via interaction protocol
- Update build number in version file in your favorite scripting language
- Perform your build steps
- Perform commit and push, you can because you already have .git(.svn, .hg etc) directory in build dir in last step
Sorry but i can't answer for your second question because i don't know any appropriate tools for windows. On linux i would use bash.