Précédent   Forum des professionnels en informatique > Systèmes > Windows > Windows XP
Windows XP Forum d'entraide Windows XP. Avant de poster : La F.A.Q Windows XP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/04/2011, 15h04   #1
Invité de passage
 
Inscription : octobre 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 7
Points : 2
Points : 2
Envoyer un message via MSN à Pakou
Par défaut Créer un sous-répertoire dans plusieurs répertoires

Bonjour à tous,

En espérant écrire au bon endroit,
je vais essayer de détailler mieux que l'intitulé ce que je voudrais faire.

J'ai sur mon disque k: plusieurs répertoires (1300 environs) dans lesquels je veux créer un sous-répertoire qui porterait le même nom.

En Windows, je sais bien créer un sous-répertoire dans un répertoire. Mais vous comprendrez que de le faire 1300 fois, c'est long et risque possible dans oublier.

En DOS également, je sais le faire mais que pour un seul répertoire à la fois.

Est-il possible, existe-t-il un commande que je pourrais faire pour créer le sous-répertoire (ex sous-rep) dans tous les répertoires de mon disque k: ??

Merci de votre aide.
Pak
Pakou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 17h34   #2
Membre Expert
 
Avatar de Guardian
 
Inscription : mars 2009
Messages : 715
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 715
Points : 1 449
Points : 1 449
Sous DOS (façon de parler, disons en ligne de commande avec un batch) tu peux lister tes répertoire et parcourir la liste pour créer dans chaque répertoire un sous répertoire.
Tu trouveras les informations utiles dans la FAQ Batch http://windows.developpez.com/faq/batch/
Guardian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 15h23   #3
Membre expérimenté
 
Homme
Inscription : juillet 2007
Messages : 437
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : juillet 2007
Messages : 437
Points : 558
Points : 558
Voilà !

Code vb :
1
2
3
4
5
6
7
8
9
strMonSousDossier = "\NomDuDossier"
Set oFSO = CreateObject("Scripting.FileSystemObject")
stRep = "C:\dev"
If oFSO.FolderExists(stRep) Then
 For each oFld in  oFSO.GetFolder(stRep).SubFolders
   Wscript.Echo "Création du dossier : " & oFld.Path	& strMonSousDossier
			oFSO.CreateFolder(oFld.Path	& strMonSousDossier)
 Next
End If

La première variable (strMonSousDossier), tu renseignes le nom du sous dossier à créer en laissant bien le "\"
La seconde utile (stRep), tu renseignes le répertoire de base, donc ici : la lettre de ton dossier !
Tu copies/colles le code dans un fichier texte, avec une extension en ".vbs", tu doubles clic, et c'est bon !
Luc1an0 est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 12/04/2011, 16h14   #4
Invité de passage
 
Inscription : octobre 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 7
Points : 2
Points : 2
Envoyer un message via MSN à Pakou
re Bonjour,

Merci beaucoup Luc1an0, je ne connais pas assez le vbs pour avoir pensé à l'utiliser pour ça, mais seulement avec les macros.

Me reste plus qu'à cliquer sur ok 1300 fois

Merci aussi à ArielD j'avais testé bcp de formules mais rien fonctionnait.

Pak
Pakou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2011, 11h01   #5
Membre expérimenté
 
Homme
Inscription : juillet 2007
Messages : 437
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : juillet 2007
Messages : 437
Points : 558
Points : 558
Salut,

Désolé, mais tu peux enlever le "Wscript.Echo" !

Cela vient du fait que mon interpréteur par défaut est "cscript.exe" et non "vbscript.exe" ... Pour l'un, le StdOut est la console (Cscript pour la console) et pour l'autre c'est le StdOut sont des MsgBox ...

Soit tu enlèves le WScript.Echo ou depuis une console "cscript.exe le_nom_du_script.vbs"
Luc1an0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/12/2011, 15h24   #6
Invité de passage
 
Inscription : octobre 2003
Messages : 7
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 7
Points : 2
Points : 2
Envoyer un message via MSN à Pakou
Bonjour à tous,

Le code vb de Luc1an0 m'a été très utile. Les 1300 répertoires ont désormais le sous-répertoire voulu.

Maintenant j'essaie de modifier ce code afin d'ajouter un sous-répertoire dans le premier sous-répertoire créer. Chose qui me semblait assez facile avec le code que j'avais mais certains répertoires ont été créés après que j'aie exécuté ce code vb donc ils ne contiennent pas le premier sous-répertoire.
ex:
K:\rep1\sousRep
K:\rep2\sousRep
K:\rep3\
K:\rep4\sousRep
K:\rep5\
K:\rep6\sousRep
Avec le code vb ci-dessus, lorsqu'il rencontre le répertoire qui ne contient pas le sous répertoire, il plante et affiche un message d'erreur puisqu'il ne trouve pas le sous-rep dans ce répertoire. Logique

J'ai testé plusieurs modifications mais sans succès.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
strMonSousDossier = "\sousRep\sousRep2"
strMonSousDossier2 = "\sousRep"
Set oFSO = CreateObject("Scripting.FileSystemObject")
stRep = "K:\"
If oFSO.FolderExists(stRep) Then
 For each oFld in  oFSO.GetFolder(stRep).SubFolders
	If Not oFSO.FolderExists(strMonSousDossier2) Then
		Wscript.Echo "Création du dossier : " & oFld.Path	& strMonSousDossier2 
			oFSO.CreateFolder(oFld.Path	& strMonSousDossier2)
	End If
		Wscript.Echo "Création du dossier : " & oFld.Path	& strMonSousDossier 
			oFSO.CreateFolder(oFld.Path	& strMonSousDossier)
 Next
End If
Mais il s'arrête directement au premier répertoire en affichant un problème à la ligne
Code :
1
2
Wscript.Echo "Création du dossier : " & oFld.Path	& strMonSousDossier2 
			oFSO.CreateFolder(oFld.Path	& strMonSousDossier2)
alors qu'il ne devrait pas entrer dans ce IF puisque strMonSousDossier2 existe.

L'idée est que si le strMonSousDossier2 existe de créer que strMonSousDossier et s'il n'existe pas de créer les deux. J'emploi sûrement mal le If Not.

Merci de votre aide.
Pakou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h49.


 
 
 
 
Partenaires

Hébergement Web