Utilisateur   Mot de passe  
Informaticien.be - Derniers blogs actifs - Liste des blogs
KangOl
profil : pointeur
A lire avant
02/03/2007 @ 17:22:04: [programmation]: autosubst 1.0
Lorsque l'on développe une application, il arrive que l'on doivent corriger des bugs dans des versions précédentes de l'application. Avec SVN, pas de problème pour récupérer les sources à un moment t. Là où cela devient embêtant, c'est que dans son IDE, il faille aller chercher le nouveau fichier de projet dans une hiérarchie qui peut être compliquée. De même, certains raccourcis peuvent ne plus être d'actualité, tout comme des éventuels scripts helpers ...

Cependant, il existe un outil qui peut nous facilité le travail : subst.
Cette commande fabuleuse permet d'associer un disque virtuel à un répertoire d'un disque local. Par exemple, la commande
$> subst z: c:\projet\version2
nous permet de travailler dans z: au lieu de travailler dans c:\projet\version2. Ainsi, si on veux à présent travailler sur la première version du projet, il nous suffit de faire
$> subst z: /d
$> subst z: c:\projet\version1

Et voilà, on travaille toujours sur z:

Autre avantage, les MRU list restent toujours valides.

Cependant, tout n'est pas rose avec subst. En effet, subst à deux grands défauts :
  1. le disque virtuel n'a pas de nom, ce qui peut être emmerdant, on ne sais plus vers quoi pointe le disque et on risque de modifier de mauvais fichiers.
  2. le disque virtuel disparaît à l'extinction de la session de l'utilisateur, ce qui veux dire qu'il faut refaire le subst à chaque fois que l'on se connecte.


Afin de régler ces deux problèmes, j'ai créer un petit fichier batch (oui je sais, il y a mieux, mais ça marche et c'est pas la peine de déployer l'artillerie lourde pour ça).

@echo off
setlocal

if {%1}=={} goto syntax
if {%2}=={} goto syntax

set DRV=%1
if "%DRV:~1,1%" NEQ ":" goto syntax
set DRV2=%DRV:~0,1%

set KEY=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\\Default- Label

set DIR=%2
set DRVLABEL="%~nx2"

subst /D
subst

reg add /f /ve /d

:: on se rajoute au Run pour être lancé automatiquement lors du prochain démarrage
set batchname="%~n0"
set exeescaped=%0
set exeescaped=%exeescaped:"=\"%
set direscaped=%DIR:"=\"%

set RUNKEY=HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

reg add /f /v /t REG_SZ /d " "

goto :EOF
:syntax
echo syntax: %0 Drive: Path


Placez autosubst.bat dans un répertoire accessible depuis votre PATH et ça y est. Il s'utilise exactement de la même manière que subst (sauf pour l'option /d)

Il reste un dernier point qui pourrait encore rebuter certains d'entre vous : la ligne de commande. Pour éviter de ne devoir se taper des lignes de commande tout le temps, vois un petit fichier .reg qui permet de rajouter une entrée dans le menu contextuel des dossiers. Cette entrée permet de monter le dossier sélectionné comme étant le disque z: (ou autre, adaptez le fichier à votre goût).
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\Mount_as_Z:]
@="Mount as Z:"

[HKEY_CLASSES_ROOT\Folder\shell\Mount_as_Z:\command]
@="cmd.exe /c autosubst z: \"%1\""



Pour les paresseux, voici les fichiers en téléchargement :
  1. http://kangol.prout.be/blogfiles/autosubst.bat
  2. http://kangol.prout.be/blogfiles/mount_as_z.reg
Commentaires
De la programmation dans un blog :ciler: :ciler: :ciler:

:neowen:
03/03/2007 @ 01:24:34: zion: autosubst 1.0
Pq pas, c'est bien de la prog dans un blog, ça aide à comprendre certains concepts.

manque plus que ruby :tongue: lol
11/03/2007 @ 15:49:04: matrixise: autosubst 1.0
Bonjour,

J'ai réaliser le même type de batch dans un VBS mais par contre l'option pour modifier l'icone du drive ne fonctionne pas sur un lecteur SUBST
Ajout de la clé


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIco- ns\Z\DefaultIcon]
@="C:\\Windows\\System32\\Shell32.dll,126"

Ca marche pour un drive local et un map réseau mais pas sur un lecteur subst.

Aurais tu une idée miraculeuse??

Merci

Olivier
30/05/2007 @ 16:55:23: olarello: autosubst 1.0
J'y jetterai un oeil demain si j'y pense ...
30/05/2007 @ 17:52:40: KangOl: autosubst 1.0
Poster un commentaire
Utilisateur
Mot de passe
 
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?