Note XP may not display file extensions by default in Windows Explorer. The settings can be modified to display the file extensions in Windows Explorer’s Folder Options dialog box if you have required permissions. Display of the file extentions can make it a lot easier to work with the files in Windows Explorer.
Important Note Service Pack 3 for MS Project 2003 contains a file converter that enables MS Project 2003 to read the MS Project 2007 file format, so MS Project 2003 can open the mpp files from the file format of MS Project 2007. MS Project 2003 cannot open the mpp files from the file format of MS Project 2010. None of the other versions can open the mpp files from the file format of later versions. MS Project 2010 is backward compatible with MS Project 98 (MS Project 2010 supports opening from the MS Project 98 file format) but MS Project 2010 cannot save to the MS Project 98 file format. Some data related to the changed or the new features of the currently used version may be lost while saving to the file formats of earlier versions. Read the related product documentation for incompatible features if you are sharing files with earlier versions.
Important Note If you are not familiar with creating and modifying batch files or do not have permissions to create and work with such files in your system, please consult your IT Administrator.
Open Notepad application and enter the command lines given below:
@ECHO OFF REM Version.bat ECHO Filename: %1 ECHO. ECHO -- CHECK FOR PROJECT VERSION -- strings %1 | findstr "[0-9],.,....,...." 2>NUL ECHO Check the following list for the first one or two digits of the string above (xx,.,....,....) ECHO List of xx (Product Name): 8 (98), 9 (2000), 10 (2002), 11 (2003), 12 (2007), 14 (2010) ECHO. ECHO -- CHECK FOR MPP FILE VERSION -- strings %1 | findstr ".MPP" 2>NUL ECHO Check the following list for the digit(s) at the end of the string above (...MPPxx) ECHO List of xx (Product Name): 8 (98), 9 (2000/2002/2003), 12 (2007), 14 (2010) ECHO. PAUSE
Save the file to a non-system directory or to a new one created with a descriptive name such as Utilities.
Note In Notepad, set Save as type: to All Files and enter Version.bat into the File name: box and click OK to save the file.
Version.bat uses Strings program to extract version information from the mpp files. Download and unzip Strings into the same directory as Version.bat (See the section “The programs and commands used in Version.bat file”).
Create a Desktop shortcut for Version.bat.
Important Note The batch file opens the mpp file for only reading but always make backup copies of your mpp files before testing the batch file on the mpp files; work in a test folder with test files. Syntax errors may occur because of incorrect typing at the beginning. Be careful not to accidentally overwrite the mpp file.
To test the batch file with an mpp file, just drag and drop the mpp file over the desktop shortcut icon of Version.bat file.
Note A practical way to run the batch file on an mpp file would be as follows: If you have permissions, place a shortcut to Version.bat in SendTo directory. SendTo directory is hidden by default in XP desktop system. The path of SendTo directory is “C:\Documents and Settings\<your profile name>\SendTo” in XP. Right-click on any mpp file to display shortcut menu (contextual menu); then apply Send To } Version.bat to run the batch file. Version.bat shortcut can be renamed to “DISPLAY MPP VERSION” without extension “.bat” to find it easily in the command list of the shortcut menu. We can also change the icon of the shortcut.
While the cmd window is open, right-click on the title to open Properties dialog box and change default settings for a better appearance.
The following is the output from Version.bat for an example mpp file saved to MS Project 98 format with MS Project 2003 but assume that we do not have this information at the beginning:
Filename: C:\ProjectPlan.mpp -- CHECK FOR PROJECT VERSION -- 11,3,2007,1529 11,3,2007,1529 Check the following list for the first one or two digits of the string above (xx,.,....,....) List of xx (Product Name): 8 (98), 9 (2000), 10 (2002), 11 (2003), 12 (2007), 14 (2010) -- CHECK FOR MPP FILE VERSION -- MSProject.MPP8 Check the following list for the digit(s) at the end of the string above (...MPPxx) List of xx (Product Name): 8 (98), 9 (2000/2002/2003), 12 (2007), 14 (2010) Press any key to continue . . .
Let’s review the output to find out the version information.
The batch file finds two occurrences of the search pattern in the mpp file as 11,3,2007,1529.
The first two digits in the string listed is 11. This is the internally used version number or major version number. The batch file also lists some combinations for lookup; “11” is in the lookup list and the number in parenthesis next to “11” is the year part of the product name which is 2003. So we assume that the mpp file was saved with MS Project 2003.
Note The batch file may sometimes display some irrelevant lines containing the search strings but it is not difficult to distinguish them from the relevant information. It is possible to further process the output from Strings program using text processing utilities and batch processing features to clean the unnecessary portions but it is always the best to keep it as simple as possible.
Let’s now check whether MS Project 2003 originally used to save the mpp file with that version number contains latest updates.
The latest update available for MS Project 2003 is listed as SP3 in the Update Center at http://technet.microsoft.com/en-us/office/ee748587. We now need to find out to which version number SP3 corresponds. This is not something that we normally do as it certainly takes time but it is sometimes a necessary action especially while we are having some problems on an mpp file sent to us without a version history. The version number for SP3 can be found at http://support.microsoft.com/kb/923622 after a quick search for "Description of Project 2003 Service Pack 3" in the knowledge base web site at support.microsoft.com. It is as follows: File name: Winproj.exe Version : 11.3.2007.1529 Version number is a four-part string with the format major.minor.build.revision where parts represent major version, minor version, build number and revision number respectively. Build number is also called build version or update version which is 2007 in SP3. The version number 11.3.2007.1529 given in KB article matches the comma separated one listed (it is 11,3,2007,1529) by the batch file. As a result, we assume that the mpp file was saved with MS Project 2003 SP3.
Important Note The above assumption may help you find out cause of the problem with the mpp file but it is an assumption and should always be verified with the origin of the mpp file. We do not know how the version number of the last update applied to the MS Project originally used to save the mpp file relates to the version string found in the mpp file by Version.bat. It is not documented.
Note MSProject.MPP8 string in the output. If we drop MSProject.MPP string it is just the number 8.
If we check the mpp file format version list included in the batch file output for a lookup, MPP8 corresponds to MS Project 98. As a result, it’s an mpp file saved to the file format of MS Project 98.
Important Note An mpp file format versioning system does not exist. The number “8” is used just for naming convenience as it only means “an mpp file saved by MS Project 98” or “an mpp file having the file format of MS Project 98”.
Echo command
Echo is a built-in command (internal command) in XP operating system. Search for Echo in XP system help pages to have more information on the command. @ECHO OFF command line is used to turn the command-echoing feature off and not to echo the echo during batch file execution.
Findstr program
Findstr is a program or an external command (not like Echo which is a built-in command) that is included in XP desktop installation by default and it is found in “C:\Windows\System32” directory. The default system settings allow us to access Findstr program anywhere in the system so we do not need to include a path to file location in the command line. Findstr searches for patterns of text in files using regular expressions. Search for Findstr in the system help pages to have more information on Findstr program or visit the web site here at: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/findstr.mspx?mfr=true In the batch file, the pipe (|) redirects standard output of Strings program to the standard input of Findstr program. 2>NUL expression is used at the end of command lines to suppress any possible error message.
Strings program
Strings is a program developed by Mark Russinovich. Strings scans the file you pass it for UNICODE (or ASCII) strings of a default length of 3 or more UNICODE (or ASCII) characters. Visit the web site below to download Strings program: http://technet.microsoft.com/en-us/sysinternals/bb897439 Important Note We need to place Strings program in the same directory with Version.bat since Version.bat will search the current directory to locate Strings program by default during the execution if we do not provide any path information in the command line.
This article is provided "AS IS" with no warranty made as to technical accuracy and confers no rights.
Do not make any business decision based on the output of the batch file (purchasing a product etc...).
This is not a reverse coding attempt. The method used here is a simple string search in an mpp file and does not provide any information on the file structure or format. This article’s content is completely based on the information provided by the publicly available product web site documentation.
The article contains URLs that were valid at the time of submission. Some information in the article is based on the content of the product web pages at the time of submission. URLs provided here may change in time and may link to sites or pages that no longer exist. Also note that the content accessed by using the URLs may change in time.
The lookup lists given in the batch file are to be used only for informational purposes, but not as a reference. Visit and search on http://support.microsoft.com to have information on version numbers used internally (e.g. 8, 9, 10, 11, 12, 14) and matching year part of the product names (e.g. MS Project 2003, MS Project 2007 or MS Project 2010).
The method described in this article is not a documented method to get version information of an mpp file. It is not possible to guarantee the validity of the batch file output since it is not based on the documented information.
The batch file was tested for a version of MS Project desktop installed in a 32-bit XP desktop system. It may or may not work in other operating systems running MS Project desktop.
The method is not tested with mpp files of all MS Project versions. It may not display useful information for mpp files of all MS Project versions. The method may not work with corrupt mpp files.
The earliest version mentioned in this article is MS Project 98.
In this article, there is no mention of product version 13. It is not an overlooked information. That number is not included in Project versioning.