# encoding: ascii
# api: powershell
# title: 
# description: Repost from http://forum.script-coding.com/viewtopic.php?id=10475
# version: 0.1
# license: CC0
# x-poshcode-id: 5786
# x-archived: 2016-03-05T22:25:15
#
#
@echo off
  setlocal enabledelayedexpansion
    set "key=HKLM\SOFTWARE\Microsoft\.NETFramework"
    for /f "skip=3 tokens=3" %%i in (
      '2^>nul reg query %key% /v InstallRoot'
    ) do set "root=%%i"
    if "%root%" equ "" (
      echo Probably .NET Framework has not been installed.
      goto:eof
    )
    if not exist "%root%" (
      echo Specified path of .NET Framework is invalid.
      goto:eof
    )
    set "key=HKLM\SOFTWARE\Microsoft\Fusion\GACChangeNotification\Default"
    set /a "num=0"
    echo The Global Assembly Cache contains the following assemblies:
    for /f "skip=4" %%i in (
      'reg query %key% ^| findstr /v /irc:"StoreChangeID"'
    ) do (
      for /f "tokens=1,2,3,4,5 delims=," %%j in ("%%i") do (
        set "clt=%%l"
        if "!clt:~2,1!" neq "" (
          set "clt=neutral"
          set "tok=%%l"
          set "arc=%%m"
        ) else (
          set "tok=%%m"
          set "arc=%%n"
        )
        echo   %%j, Version=%%k, Culture=!clt!, PublicKeyToken=!tok!, ProcessorArchitecture=!arc!
      )
      set /a "num+=1"
    )
    echo.
    echo Number of items = !num!
  endlocal
exit /b
