Partage
  • Partager sur Facebook
  • Partager sur Twitter

BAT - création / déplacement de fichier

En masse à partir d'une liste

    30 mars 2021 à 15:09:59

    Bonjour,
    J'ai un petit bat tout simple qui fonctionne qui permet de déplacer des fichiers en fonction du nom, dans un répertoire qui n'existe pas.
    Il est construit à partir d'excel (liste + concaténation puis copier / coller dans le bat)
    echo off
    for %%A in (C:\AFPLUS\FINAL\0025523*.*) do mkdir %%A C:\AFPLUS\FINAL\0025523
    for %%A in (C:\AFPLUS\FINAL\0025523*.*) do move %%A C:\AFPLUS\FINAL\0025523
    for %%A in (C:\AFPLUS\FINAL\0030202*.*) do mkdir %%A C:\AFPLUS\FINAL\0030202
    for %%A in (C:\AFPLUS\FINAL\0030202*.*) do move %%A C:\AFPLUS\FINAL\0030202
    ...
    echo on

    1) Comment rendre dynamique la création du répertoire ? Ou plus précisément, à quel endroit faut-il positionner "if not exist?

    2) Je souhaite rendre une partie du nom de fichier ("0025523", "0030202") dynamique à partir d'une liste.

    Je n'ai pas bien compris comment utiliser delims/token dans ce cas-ci...
    En sachant que j'ai utilisé ces paramètres dans un autre batch, mais on m'avait un peu aidé >_<
    for /F "delims=. tokens=1" %%i in ('dir /B *.pdf') do (
    for /F "delims=; tokens=2" %%k in ('FIND "%%i" RENB.txt') do (
    ....

    Je crois que j'ai un pb de logique...
    Merci d'avance pour le petit coup de pouce.

     

    • Partager sur Facebook
    • Partager sur Twitter
      30 mars 2021 à 23:22:38

      Bonsoir,

      Je pense que ceci pourra t'aider :

      @echo off
      setlocal EnableDelayedExpansion
      for /F "delims=" %%a in ('dir /B "*.pdf"') do (
      	set fFile="%%a"
      	set sName="%%~na"
      	echo !fFile!
      	If not exist !sName! (
      		REM mkdir !sName!
      		echo !sName!
      		REM move !fFile! !sName!
      		echo !fFile! vers !sName!
      	)
      )
      pause
      exit
      

      Pour les variables !var! (expansion retardée) je t'invite à lire ceci --> https://www.developpez.net/forums/d697396/general-developpement/programmation-systeme/windows/scripts-batch/explication-l-expansion-retardee/#post4076938

      Pour les boucles for, je t'invite à lire ceci (notamment la partie "Substitution de variable") --> https://docs.microsoft.com/fr-fr/windows-server/administration/windows-commands/for

      • Partager sur Facebook
      • Partager sur Twitter

      BAT - création / déplacement de fichier

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown