IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

copier/déplacer/renommer depuis 1 liste :''( [Batch]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut copier/déplacer/renommer depuis 1 liste :''(
    Bonjour à tous,
    je vous expose mon problème :
    1) ce que j'ai : des fichiers avec un noms hashés en désordre dans un même dossier
    2) ce que je veux : des fichiers bien renommés replacés dans une arborescence précise

    ==> J'ai une requète oracle (un pauvre select de trois champs) qui me donne
    - le nom de fichier hashé avec son extension
    - le nom du fichier correct avec son extension
    - le path dans lequel doit se trouver le fichier renommé à la fin

    Pour information, le dossier d'origine est un dossier fixe.

    Avec mon .bat actuel (réalisé via différentes sources du site), et ne lisant qu'un fichier .txt contenant uniquement la liste de tous les noms hashés je sais :
    - vérifier l'existence du fichier source
    - vérifier la présence ou non du fichier cible
    - copier le fichier (toujours hashé) dans un unique dossier
    - faire un rapport de chaque cas d'erreur

    il me manque donc le plus dur ...
    - changer la source pour ne plus avoir uniquement le nom hashé mais aussi le vrai nom et son path (fichier csv ? autre ?)
    - récupérer le fichier source, le renommer puis le déplacer à son bon emplacement...
    - et/ou tout faire d'un coup le .bat (requete, copie, renommage, déplacement ...)

    Est-ce que qq'un aurait un début de réponse sur laquelle je pourrais m'appuyer svp ?

    Mon code actuel (qui vient lire un fichier de conf)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    @echo off
    
    echo --------------------------
    echo Copie de fichiers en cours
    echo --------------------------
    echo.
    
    rem --- lecture dans un fichier config.ini les information concernant les dossiers 
    rem --- A (source) et B (destination) + chemin du fichier txt +chemin du rapport
    
    for /f "tokens=1,2 delims==" %%i in ('findstr /b /c:"chemin_dossier_A=" config.ini') do set chemin_dossier_A=%%j
    for /f "tokens=1,2 delims==" %%i in ('findstr /b /c:"chemin_dossier_B=" config.ini') do set chemin_dossier_B=%%j
    for /f "tokens=1,2 delims==" %%i in ('findstr /b /c:"chemin_fichier_txt=" config.ini') do set chemin_fichier_txt=%%j
    for /f "tokens=1,2 delims==" %%i in ('findstr /b /c:"chemin_rapport_txt=" config.ini') do set chemin_rapport_txt=%%j
    
    for /f %%i in (%chemin_fichier_txt%\liste.txt) do (
    	if exist "%chemin_dossier_A%\%%i" (
    		if not exist "%chemin_dossier_B%\%%i" (
    			xcopy "%chemin_dossier_A%\%%i" "%chemin_dossier_B%\" /s/e/i/f >nul 2>&1
    			if %errorlevel% EQU 0 (
    				echo Fichier %%i OK >>%chemin_rapport_txt%\rapport.txt
    			) else (
    				echo Impossible de copier le fichier %%i >>%chemin_rapport_txt%\rapport.txt
    			)
    		) else (
    			echo Le fichier %%i est deja present dans le répertoire cible >>%chemin_rapport_txt%\rapport.txt
    		)
    	) else (
    		echo Fichier %%i non present dans fichier source >>%chemin_rapport_txt%\rapport.txt
    	)	
    )
    
    echo ------------ fin de traitement ------------ >>%chemin_rapport_txt%\rapport.txt
    
    rem --- ouverture de rapport.txt
    start %windir%\system32\notepad.exe %chemin_rapport_txt%\rapport.txt
    Merci par avance !

  2. #2
    Candidat au Club
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juillet 2015
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Résolu
    Bon... en fait, j'étais parti très très loin pour rien
    Merci, c'est résolu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    @echo off
    
    setlocal EnableDelayedExpansion
    
    set "_InputFile=liste.csv"
    
    for /f "tokens=1-3* delims=;" %%A in (%_InputFile%) do (
      Set _var1=%%A
      Set _var2=%%B
      Set _var3=%%C
      
      xcopy "C:\HASH\!_var1!" "!_var3!" /s/e/i/f >nul 2>&1
      Ren "!_var3!!_var1!" "!_var2!"
      
    )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/02/2009, 17h58
  2. [VBA-E]Déplacer/Renommer fichier excel
    Par wanou44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/02/2006, 16h01
  3. Réponses: 5
    Dernier message: 02/11/2005, 11h49
  4. Zoom depuis une liste
    Par ranx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 24/08/2005, 11h22
  5. :?: Dialogue explorer pour copier/déplacer un fichier
    Par Don Quiche dans le forum Windows
    Réponses: 5
    Dernier message: 09/07/2004, 18h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo