Créer un répertoire sur C: reprenant le nom du CD inséré

Créer un répertoire sur C: reprenant le nom du CD inséré - Shell/Batch - Programmation

Marsh Posté le 18-10-2005 à 22:00:34    

Salut à tous  :hello:  
 
Je reposte mon problème ici car je m'étais trompé de catégorie ce matin
Merci tout d'abord à nglechau pour son aide et surtout m'avoir indiqué cette sous-cat de programmation
 
Voila : j'ai besoin de créer un petit batch qui, à chaque insertion d'un nouveau CD dans le lecteur E: , me créerait sur mon disque C: un répertoire ayant pour nom le nom de ce CD et y copierait à l'intérieur le contenu du CD  
 
Nglechau m'a conseillé de récupérer le nom de volume dans un fichier
Vol E: > C:\toto
Donc le fichier "toto" contient :
 
Le volume dans le lecteur E s'appelle 031120_1036  
Le num‚ro de s‚rie du volume est 6306-3988

 
Il me faut donc créer sur mon lecteur C: un répertoire qui s'appelle 031120_1036
 
Et là je sèche complètement
Nglechau m'a parlé de la commande FOR, mais moi je ne le suis pas... FORT  :o  :sarcastic:  :D  
Comment récupérer juste cette partie du fichier dans une variable ?
Et en admettant que cette variable se nomme VAR, en faisant un md VAR ça crée un répertoire s'appellant VAR, et non pas le contenu de VAR (euh... suis clair là ?  :lol: ), donc petit blème aussi là non ?
 
 
Quelqu'un pour m'aider ?  :jap:


Message édité par SixtySeven le 18-10-2005 à 22:31:48
Reply

Marsh Posté le 18-10-2005 à 22:00:34   

Reply

Marsh Posté le 18-10-2005 à 23:29:53    

Quel OS ?
Si WinXP tu peux utilise WMI en ligne de commande.
 
Pour recuperer le nom du volume dans le lecteur E: par exemple :
 
wmic cdrom where (Drive="E:" ) get VolumeName|find /V "VolumeName
 
tu met ca dans un fichier (car vu la synthaxe ca passera jamais dans une variable)
 
Donc  
wmic cdrom where (Drive="E:" ) get VolumeName|find /V "VolumeName" >c:\toto.txt par exemple
 
ensuite tu met ce que y'a dans ce fichier texte dans une variable :
 
set /p VAR=<c:\toto.txt
 
et ensuite tu creer ton repertoire :
md "%VAR%"
 
 
Ce qui te donne dans un batch
 
wmic cdrom where (Drive="E:" ) get VolumeName|find /V "VolumeName" >c:\toto.txt
set /p VAR=<c:\toto.txt
md "%VAR%"
 
seulement ça , ça te creé un repertoire qui a le même nom que le nom du cd.
Pour le reste je te laisse finir.
 
Pour la copie cherche tu coté de xcopy


Message édité par archimed le 18-10-2005 à 23:30:21
Reply

Marsh Posté le 19-10-2005 à 10:52:02    

:love:  :love:  :love:  
Merci beaucoup Archimed, ça fonctionne nickel  :bounce:  
Pour la copie du contenu du CD j'ai trouvé aussi donc c'est bon
Reste un dernier point :
Dans ce répertoire nouvellement créé, j'ai besoin d'y mettre un fichier texte "go.txt" (qui sera renommé en .bat par la suite), afin d'affecter une lettre de lecteur à ce répertoire (pour une question de gestion réseau par la suite)
La 1ère ligne de ce fichier est de la forme :  
 
subst L: C:\\%VAR%    
 
où %VAR% est donc le nom de mon CD.
Donc dans mon batch, après la copie du contenu du cd,  je rajoute la ligne :
 
echo subst L: C:\\%VAR%" >> c:\\%VAR%\\go.txt
 
Mais ça ne fonctionne pas
Y'a un autre moyen de créer un fichier txt avec la valeur d'une variable à l'intérieur ?
 
Je continue les tests  :pt1cable:
 
----- EDIT !!!!!!!! -----
'tain, je viens juste de tester un truc con qui marche :
 
cd c:\\%VAR%
echo subst L: C:\\%VAR% >>go.txt

 
suffisait de se placer d'abord dans le répertoire...  :pt1cable:


Message édité par SixtySeven le 19-10-2005 à 10:56:04
Reply

Marsh Posté le 19-10-2005 à 12:05:51    

Et m.... flute !!!
Ca fonctionne donc nickel au bureau sous Windows XP
Mais les CD doivent être copiés sur un serveur, sous Windows 2000 Server !
Et là, la commande wmic n'est pas reconnue
 
2 solutions à priori :
- il existe une commande sous W2k qui fait pareil que wmic ????
- je lance mon batch depuis un PC sous WinXP, et la copie de CD se fera depuis le lecteur CD de ce PC vers le disque dur du serveur via le réseau. Et là j'ai peur du ralentissement que cela va engendrer (car bien sûr ce serveur est en fonction : applications, impressions, données...)
 
 :(  :(

Reply

Marsh Posté le 27-10-2005 à 19:09:20    

Salut
Oui tu peux utiliser un batch
 

Code :
  1. vol d: > nom.txt
  2. for /F "tokens=7 delims= " %%i in (nom.txt) do (echo %%i > nom2.txt
  3. goto suivant)
  4. :suivant
  5. tu recuperes le nom dans nom2.txt
  6. tu copies ce que tu veux copier


 
Amuses toi bien
@++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed