[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
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
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |