Check EXE version in a batch file and if need be replace with another

I want to replace a file tswpfwrp.exe in Windows\System32 folder if it is an older version then the one I am replacing it with, otherwise, I don't want the batch file to run.

Below is an example of what I am trying to achieve, however, I don't know much about batchfile creation so the below example is not functional. Please help me create an effective batch file:

IF EXIST "C:\WINDOWS\system32\tswpfwrp.exe VER 3.0.6920.1201" goto lable1
IF NOT EXIST "C:\WINDOWS\system32\tswpfwrp.exe VER 3.0.6920.1201" goto lable2

:LABLE1
echo Current Version exists
pause
goto exit

:LABLE2
copy \\ourdomain\dfs\SoftwareInstall\dotNetFramework\tswpfwrp >> c:\C:\WINDOWS\system32\

echo INSTALLING DOTNET FRAMEWORK UPDATE.
Pause
goto exit

:EXIT
SCRLPBAsked:
Who is Participating?
 
AmazingTechCommented:
XCOPY /d will only copy if the file is newer than the destination.

xcopy /d /y \\ourdomain\dfs\SoftwareInstall\dotNetFramework\tswpfwrp C:\WINDOWS\system32\*.*
0
 
CoyotesITCommented:
With a batch file I do not think this is possible without some other third party utility, however you can accomplish this with vbscript like

Set objFSO = CreateObject("Scripting.FileSystemObject")
Wscript.Echo objFSO.GetFileVersion("c:\windows\system32\notepad.exe")

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.