trier avec batch
Forum Programmation : trier avec batch
bonsoir,
je commence a m intéressé de plus en plus aux commandes batch, je sais comment les faire etc mais je ne connais pas du tout quelle fonctions faut utiliser:
je m explique:
je voudrais créer un petit batch qui trie différents fichers pour les mettre dans d autre dossiers...et qu il s exécute automatiquement comme par exemple a chaque ouverture de ma session...
ce sont mes photo ou videos que je classe par mois et par extension ou qualité...
si quelqu un pouvait m aider ou juste me donner les fonctions a utilisé je chercherai pour la suite
merci
Un .bat ne sait pas faire ça. Il faut passer en programmation (vb, C++ ou autre, peu importe).
Je fais des trucs du genre en utilisant vb sous access. C'est pas vraiment l'objet d'access, mais c'est pratique et ça marche :-))
ah bon? ok
bah pourrai tu m expliquer comment faire avec acces je testerai...
merci d avance
avec DIR /B ... tu peux filter certains fichiers.
Avec un for /F, tu fais ce que tu fais ce que tu veux des fichiers.
ps: le .bat c'est de la programmation.
pps: access, je vois pas le rapport...
ppps: Pour faire des choses plus évoluées que les .bat, le mieux est de faire du python.
Message édité par CRicky le 09-11-2007 à 20:32:08
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
| Citation : pps: access, je vois pas le rapport...
|
Aucun. Mais c'est bien pratique pour exécuter du vb.
Zalp, je t'ai fait un petit extrait de code :
Function Trier()
Dim Fichier As String 'et Dim les autres
Fichier = Dir(LieuOrigine & "*.*" )
Do Until Fichier = ""
If Fichier <> "." And Fichier <> ".." Then
If (GetAttr(LieuOrigine & Fichier) And vbDirectory) <> vbDirectory Then
' ** Extraire l'extension
If InStr(1, Fichier, "." ) = 0 Then
Racine = Fichier
Extens = ""
Else
I = 0
Do
Pos = I
I = InStr(Pos + 1, Fichier, "." )
Loop Until I = 0
Racine = Mid$(Fichier, 1, Pos - 1) ' donc, sans le .
Extens = Mid$(Fichier, Pos, Len(Fichier) - Pos + 1)
End If
' ** Extraire la taille
Taille = FileLen(Nom1)
' là, tu trie et choisi l'action
...........
' ** pour copier / déplacer
Nom1 = LieuOrigine & Fichier
Nom2 = LieuDestination & Fichier
FileCopy Fichier1, Fichier2
Kill Fichier1 ' Attention, gestion d'erreur si FileCopy s'est planté
' ** pour renommer ou déplacer si LieuOrigine et LieuDesination sont sur le même disque
Name Nom1 As Nom2
End If
End If
Fichier = Dir
Loop
End Function
| Citation : Aucun. Mais c'est bien pratique pour exécuter du vb. |
C'est surtout utile si on en a besoin, pas pour exécuter
Pour ton code, en même temps, une action sur le tri avec les extensions ou les noms, ça prend une ligne en batch
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
merci doatyn mais c est vrai que c est pas tres explicité, et je prefere de loin fair ca avec un bat si c ets possible ca a l air beaucoup plus simple, une fois le code compris et rédigé je peux le changer sans probleme...
donc CRicky si tu pouvais me dire le code en bat ou c ets peut etre le meme mais en moins compliqué...
merci de vos reponses
FOR /F %%A IN (`DIR /B *.txt 2^>NUL`) DO COPY %%A "C:\toto\"
Après, ça dépend de ce que tu veut faire exactement.
Si tu veux faire quelque chose de compliqué, mieux vaut programmer avec de meilleurs outils (python, VB...).
Message édité par CRicky le 10-11-2007 à 17:38:57
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Le VB, me rappelle étrangement le VHDL XD
Répondre à Tybbow
Il y a 1425 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

CRicky