Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2776 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Déplacement massif de fichiers

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch] Déplacement massif de fichiers

n°2043342
Cougy
Play it fucking loud !
Posté le 20-12-2010 à 19:22:50  profilanswer
 

Bonjour à tous,
 
Je fait face à un petit problème de script... J'ai dans un répertoire, plein de dossiers contenant chacun un seul fichier. J'aimerai que ces fichiers se retrouvent tous à la racine de ce répertoire plutôt que dans des sous répertoires.
Pour plus de facilité j'ai réussi avec ant renamer à renommer tous mes dossiers de manière uniforme : dossier_1 ... dossier_n.
 
Mais pour le batch parcourant mes dossiers et déplaçant le fichier qu'ils contiennent dans le répertoire parent, je sèche...
J'ai fait quelques recherches google mais je n'arrive pas à écrire un .bat qui fait ce travail.
 
Je me doute bien que c'est tout pourri : avec une variable. L'initialiser à 1. Faire une boucle de 1 à n et à chaque tour de boucle faire un move ".\dossier_"valeur de ma variable"\*.*" vers ".\"
 
Un p'tit coup de main ? :)
 
Merci d'avance.


---------------
A.K.A. Korrozyf - Des fois je fais des photos nettes
mood
Publicité
Posté le 20-12-2010 à 19:22:50  profilanswer
 

n°2043343
o'gure
Multi grognon de B_L
Posté le 20-12-2010 à 19:24:02  profilanswer
 

Ce sujet a été déplacé de la catégorie OS Alternatifs vers la categorie Programmation par O'gure


---------------
Relax. Take a deep breath !
n°2043345
erulio
Posté le 20-12-2010 à 19:28:00  profilanswer
 

find . -type f -exec mv {} MON_DIRECTORY_PR2F2R2 \;

n°2043347
erulio
Posté le 20-12-2010 à 19:44:03  profilanswer
 

Ah tiens, c'est drôle, le find n'est pas construit en une fois, et ça va chopper aussi les fichiers que tu viendras de déplacer.

 

Suffit donc de préciser de ne pas tenir compte des fichiers du répertoire courant :
find ./*/ -type f -exec mv {} MON_DIRECTORY_PR2F2R2 \;


Message édité par erulio le 20-12-2010 à 19:44:14
n°2043376
Cougy
Play it fucking loud !
Posté le 20-12-2010 à 21:30:57  profilanswer
 

o'gure : désolé pour le mauvais placement de topic. :jap:
 
erulio : à la lecture, la commande que tu me proposes ressemble à une commande linux non ? Tu aurais l'équivalent sur windows ? :)


---------------
A.K.A. Korrozyf - Des fois je fais des photos nettes
n°2043397
erulio
Posté le 20-12-2010 à 22:21:58  profilanswer
 

C'est du Unix, mais comme tu venais de OSA, je croyais pouvoir t'aider.
Et non, je n'y connais rien en Windows.

n°2043556
Xspawn_Lpc
Posté le 21-12-2010 à 16:04:25  profilanswer
 

Pour parcourir tous les répertoires :
 
REp="xxxxxxxxxxxxxxxxx"
 
cd /d %REP%
for /f %i in ('dir /b /ad %REP%') do @echo %%i
 
après remplacer le echo par ce que tu veut.


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
n°2043659
Cougy
Play it fucking loud !
Posté le 22-12-2010 à 09:55:33  profilanswer
 

Salut.

 

Je viens de tester mais ça ne marche pas. :(

 

Je suis dans un répertoire nommé "Patchs" qui contient des sous répertoires nommés "directory_10" à "directory_150".
Chacun de ces sous répertoires contient 1 patch (fichier .exe).

 

Je suis en train de me faire un CD d'installation de windows XP avec toutes les mises à jours déjà installées dedans. Mais le problème est que nLite demande d'avoir tous les fichiers de patchs dans le même répertoire sans sous répertoires donc il faudrait que je déplace les 150 fichiers de leur sous répertoires respectifs à ce répertoire "Patchs" racine.

 

Le mieux que je fasse c'est ça :
@echo off
set i=10
:startfor
set /a i=i+1
move .\directory_"%i%"\*.exe .\
if %i% LSS 150 goto startfor

 

mais ça ne marche pas... :/

 

Edit : mon batch est à la racine du répertoire Patchs

 

Edit 2 : J'ai trouvé ! Il ne me manquait que les "" autour de mon %i% !
Merci pour vos réponses.

 


Message édité par Cougy le 22-12-2010 à 10:24:41

---------------
A.K.A. Korrozyf - Des fois je fais des photos nettes

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch] Déplacement massif de fichiers

 

Sujets relatifs
Batch Supprimer le caractère = contenu dans un fichier[BATCH]tester la valeur d'un clé de registre.
[Shell/Batch] Modification de valeurs non numériques dans une colonne[Shell/Batch] Installation de programme en chaîne
envoi de données de form vers 2 fichiers phpLire des fichiers .class
[GtkAda] Déplacement de widget dans un Gtk_Fixed[HELP] Aide sur la création d'un batch moyennement complexe
probléme en commande batchTous mes fichiers js sont détecter comme virus
Plus de sujets relatifs à : [Batch] Déplacement massif de fichiers


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR