[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/se3-wpkg/sources/wpkg/ -> AnalyseCategory.bat (source)

   1  :: Ce script permet de réorganiser les menus démarrer de All Users par les installations wpkg, de supprimer les raccourcis lors du remove
   2  :: Auteur : Olivier Lacroix
   3  
   4  @echo off
   5  if ""=="%Z%" set Z=Y:\unattended\install
   6  :: mettre DEBUG=1 pour afficher des logs
   7  SET DEBUG=0
   8  
   9  :: regeneration locale de la correspondance ID du package<-> Category
  10  pushd %Z%\wpkg
  11  if "%DEBUG%"=="1" echo Analyse des category dans packages.xml
  12  cscript %Z%\wpkg\AnalyseCategory.js > NUL
  13  Set raccprogstoclass=%systemdrive%\netinst\PackagesCategory.txt
  14  Set raccpersotag=%systemdrive%\netinst\PackagesCategoryPerso.tag
  15  
  16  SET ARGUN=%1
  17  SET ARGDEUX=%2
  18  :: patch pour gerer les raccourcis contenant des espaces: on vire les guillemets
  19  SET PACKAGE=%ARGUN:"=%
  20  SET DOSSIERLNK=%ARGDEUX:"=%
  21  
  22  if "%DEBUG%"=="1" echo # REORGANISATION DU MENU DEMARRER pour le programme %PACKAGE% #
  23  
  24  if "%ALLUSERSPROFILE%"=="" (
  25      rem Par defaut, c'est maintenant c:\users sur tous les OS.
  26      Set ALLUSERSPROFILE="C:\Users"
  27      ver | find /i "version 5.1." > nul
  28      if %errorlevel%==0 Set ALLUSERSPROFILE="C:\Documents and Settings\All Users"
  29      ver | find /i "version 5.2." > nul
  30      if %errorlevel%==0 Set ALLUSERSPROFILE="C:\Documents and Settings\All Users"
  31      ver | find /i "Windows 2000" > nul
  32      if %errorlevel%==0 Set ALLUSERSPROFILE="C:\Documents and Settings\All Users"
  33      echo Documents de AllUsers de l'OS : %ALLUSERSPROFILE%
  34  )
  35   
  36  reg.exe query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v "Common Programs" | find /I "Common Programs" > c:\tmp.txt
  37  CHCP 1252 > NUL
  38      for /F "tokens=2* delims=    " %%a in (c:\tmp.txt) do (
  39      CHCP 850 > NUL
  40      if exist "%%b" set MenuDemarrer=%%b&& if "%DEBUG%"=="1" echo Le menu demarrer de AllUsers est dans %%b
  41  )
  42  
  43  if exist "%raccpersotag%" del /F "%raccpersotag%" > NUL
  44  SET raccprogstoclassperso=%Z%\packages\windows\PackagesCategory.txt
  45  
  46  IF "%3"=="remove" goto remove
  47  
  48  IF EXIST "%raccprogstoclassperso%" (
  49  :: Prise en compte d'un fichier de correspondance pour personnaliser 
  50      if "%DEBUG%"=="1" echo Examen de %raccprogstoclassperso% pour rangement perso de %DOSSIERLNK% dans AllUsers
  51      for /F "tokens=1,2 delims=;" %%a in (%raccprogstoclassperso%) do (
  52          if "%%a"=="%PACKAGE%" (
  53              if "%DEBUG%"=="1" echo ID: %%a Category: %%b
  54              if exist "%MenuDemarrer%\%DOSSIERLNK%" (
  55                  if "%DEBUG%"=="1" echo "%MenuDemarrer%\%DOSSIERLNK%" existe : on le deplace si la category est renseignee.
  56                  if not "%%a"=="" if not "%%b"=="" (
  57                      if not exist "%MenuDemarrer%\%%b" echo Creation du dossier %%b&& mkdir "%MenuDemarrer%\%%b"
  58                      if exist "%MenuDemarrer%\%%b\%DOSSIERLNK%" (
  59                          echo La destination "%MenuDemarrer%\%%b\%DOSSIERLNK%" existe. On la supprime pour remplacement.
  60                          dir "%MenuDemarrer%\%%b\%DOSSIERLNK%" | findstr /I "<REP>" >NUL
  61                          if errorlevel 1 (
  62                              if "%DEBUG%"=="1" echo Suppression du raccourci %%b\%DOSSIERLNK%
  63                              del /F /S "%MenuDemarrer%\%%b\%DOSSIERLNK%"
  64                          ) ELSE (
  65                              if "%DEBUG%"=="1" echo Suppression du dossier %%b\%DOSSIERLNK%
  66                              rd /S /Q "%MenuDemarrer%\%%b\%DOSSIERLNK%"
  67                          )
  68                      )
  69                      echo Rangement personnalise du fichier-dossier %DOSSIERLNK% de l'application %%a vers la categorie %%b
  70                      move /Y "%MenuDemarrer%\%DOSSIERLNK%" "%MenuDemarrer%\%%b\"
  71                      echo OK > "%raccpersotag%"
  72                  )
  73              ) ELSE (
  74                  echo "%MenuDemarrer%\%DOSSIERLNK%" n existe pas. Bizarre.
  75              )
  76          )
  77      )
  78  ) ELSE (
  79      if "%DEBUG%"=="1" echo Le fichier de personnalisation du rangement est absent : %raccprogstoclassperso%.
  80  )
  81  
  82  :: On teste si le raccourci a deja ete classe a l'aide du fichier personnalise.
  83  :: Si oui, on supprime automatiquement le raccourci classe dans la category officielle lors d'une revision precedente.
  84  if exist "%raccpersotag%" goto suiterangementperso
  85  
  86  if "%DEBUG%"=="1" echo Action par defaut : aucune correspondance n'a ete trouvee dans %raccprogstoclassperso%
  87  :: Debut de l'action officielle : classement dans le nom de la category par defaut
  88  if "%DEBUG%"=="1" echo Rangement de %DOSSIERLNK% par categories dans AllUsers
  89  for /F "tokens=1,2 delims=;" %%a in (%raccprogstoclass%) do (
  90      if "%%a"=="%PACKAGE%" (
  91          if "%DEBUG%"=="1" echo ID: %%a Category: %%b
  92          if exist "%MenuDemarrer%\%DOSSIERLNK%" (
  93              if "%DEBUG%"=="1" echo "%MenuDemarrer%\%DOSSIERLNK%" existe : on le deplace si la category est renseignee.
  94              if not "%%a"=="" if not "%%b"=="" (
  95                  if not exist "%MenuDemarrer%\%%b" echo Creation du dossier %%b&& mkdir "%MenuDemarrer%\%%b"
  96                  if exist "%MenuDemarrer%\%%b\%DOSSIERLNK%" (
  97                      echo La destination "%MenuDemarrer%\%%b\%DOSSIERLNK%" existe. On la supprime pour remplacement.
  98                      dir "%MenuDemarrer%\%%b\%DOSSIERLNK%" | findstr /I "<REP>" >NUL
  99                      if errorlevel 1 (
 100                          if "%DEBUG%"=="1" echo Suppression du raccourci %%b\%DOSSIERLNK%
 101                          del /F /S "%MenuDemarrer%\%%b\%DOSSIERLNK%"
 102                      ) ELSE (
 103                          if "%DEBUG%"=="1" echo Suppression du dossier %%b\%DOSSIERLNK%
 104                          rd /S /Q "%MenuDemarrer%\%%b\%DOSSIERLNK%"
 105                      )
 106                  )
 107                  echo Rangement du fichier-dossier %DOSSIERLNK% de l'application %%a vers la categorie %%b
 108                  move /Y "%MenuDemarrer%\%DOSSIERLNK%" "%MenuDemarrer%\%%b\"
 109              )
 110          ) ELSE (
 111              echo "%MenuDemarrer%\%DOSSIERLNK%" n existe pas. Bizarre.
 112          )
 113      )
 114  )
 115  
 116  goto END
 117  
 118  :remove
 119  :: Classement perso par Category
 120  IF EXIST "%raccprogstoclassperso%" (
 121      if "%DEBUG%"=="1" echo Suppression automatique de %DOSSIERLNK% du package %PACKAGE% : rangement personnalise. Examen de %raccprogstoclassperso%
 122      for /F "tokens=1,2 delims=;" %%a in (%raccprogstoclassperso%) do (
 123          if "%%a"=="%PACKAGE%" (
 124              if "%DEBUG%"=="1" echo ID: %%a Category: %%b
 125              if exist "%MenuDemarrer%\%%b\%DOSSIERLNK%" (
 126                  echo "%MenuDemarrer%\%%b\%DOSSIERLNK%" existe : on le supprime.
 127                  if not "%%a"=="" if not "%%b"=="" (
 128                      dir "%MenuDemarrer%\%%b\%DOSSIERLNK%" | findstr /I "<REP>" >NUL
 129                      if errorlevel 1 (
 130                          if "%DEBUG%"=="1" echo Suppression du raccourci obsolete %%b\%DOSSIERLNK%
 131                          del /F /S "%MenuDemarrer%\%%b\%DOSSIERLNK%"
 132                      ) ELSE (
 133                          if "%DEBUG%"=="1" echo Suppression du dossier obsolete %%b\%DOSSIERLNK%
 134                          rd /S /Q "%MenuDemarrer%\%%b\%DOSSIERLNK%"
 135                      )
 136                      if "%DEBUG%"=="1" echo Suppression de la categorie "%MenuDemarrer%\%%b" si vide.
 137                      dir /B "%MenuDemarrer%\%%b" | find /V "" >NUL || rd /S /Q "%MenuDemarrer%\%%b"
 138                  )
 139              )
 140          )
 141      )
 142  ) ELSE (
 143      if "%DEBUG%"=="1" echo Le fichier de personnalisation du rangement est absent : %raccprogstoclassperso%.
 144  )
 145  
 146  :suiterangementperso
 147  :: Classement officiel par Category
 148  if "%DEBUG%"=="1" echo Suppression automatique de %DOSSIERLNK% du package %PACKAGE% : rangement officiel. Examen de %raccprogstoclass%
 149  for /F "tokens=1,2 delims=;" %%a in (%raccprogstoclass%) do (
 150      if "%%a"=="%PACKAGE%" (
 151          if "%DEBUG%"=="1" echo ID: %%a Category: %%b
 152          if exist "%MenuDemarrer%\%%b\%DOSSIERLNK%" (
 153              echo "%MenuDemarrer%\%%b\%DOSSIERLNK%" existe : on le supprime.
 154              if not "%%a"=="" if not "%%b"=="" (
 155                  dir "%MenuDemarrer%\%%b\%DOSSIERLNK%" | findstr /I "<REP>" >NUL
 156                  if errorlevel 1 (
 157                      if "%DEBUG%"=="1" echo Suppression du raccourci obsolete %%b\%DOSSIERLNK%
 158                      del /F /S "%MenuDemarrer%\%%b\%DOSSIERLNK%"
 159                  ) ELSE (
 160                      if "%DEBUG%"=="1" echo Suppression du dossier obsolete %%b\%DOSSIERLNK%
 161                      rd /S /Q "%MenuDemarrer%\%%b\%DOSSIERLNK%"
 162                  )
 163                  if "%DEBUG%"=="1" echo Suppression de la categorie "%MenuDemarrer%\%%b" si vide.
 164                  dir /B "%MenuDemarrer%\%%b" | find /V "" >NUL || rd /S /Q "%MenuDemarrer%\%%b"
 165              )
 166          )
 167      )
 168  )
 169  
 170  :END
 171  CHCP 850 > NUL


Generated: Tue Mar 17 22:47:18 2015 Cross-referenced by PHPXref 0.7.1