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 :

Batch pour renommer des fcihiers avec de long nom ne fonctionne pas


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Support technique commercial
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Support technique commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut Batch pour renommer des fcihiers avec de long nom ne fonctionne pas
    Bonjour,
    J'ai créer un batch pour renommer les fichier dans un dossier.
    Le fichier le plus long a ce jour est 92 caractères
    SAGE_BATIGEST_BTG_DOS_EIE_BC-20240201183257-(bd77bc9e-675a-4470-af99-0e5fa2b19471)-Full.zip
    Le batch devrait renommer le fichier.
    Il fonctionne pour la création des variables, en mettant un echo j'obtient ceci
    Nom du fichier : BTG_DOS_CLIMAVIE-20240201183345-(bd77bc9e-675a-4470-af99-0e5fa2b19471)-Full.zip
    Dossier parent : BTG_DOS_CLIMAVIE-20240201183345-(bd77bc9e-675a-4470-af99-0e5fa2b19471)-Full.zip
    Chemin complet : D:\SauveSQLBTG\
    Nouveau : BTG_DOS_CLIMAVIE
    A :\SauveSQLBTG\BTG_DOS_CLIMAVIE-20240201183345-(bd77bc9e-675a-4470-af99-0e5fa2b19471)-Full.zip
    B :\SauveSQLBTG\BTG_DOS_CLIMAVIE.zip
    Le fichier spécifié est introuvable.
    Par contre il ne renomme pas le fichier

    voila le script
    @echo off

    rem Spécifiez le répertoire dans lequel vous voulez rechercher les fichiers
    set "repertoire=D:\SauveSQLBTG\"
    set "dossier=BTG_DOS_EIE"

    rem Parcourir les fichiers commençant par "xxxxxx"
    for %%A in ("%repertoire%\*-*.zip") do (
    rem Stocker le nom du fichier et du dossier parent dans des variables
    set "nom_fichier=%%~nxA"
    set "dossier_parent=%%~nxA"
    set "chemin_complet=%%~dpA"
    rem Afficher le nom du fichier et le nom du dossier parent
    echo Nom du fichier : !nom_fichier!
    echo Dossier parent : !dossier_parent!
    echo Chemin complet : !chemin_complet!
    rem Extraire la partie avant le premier tiret
    for /f "tokens=1 delims=-" %%c in ("!nom_fichier!") do (
    set "nom_sans_tiret=%%c!extension!"
    echo Nouveau : !nom_sans_tiret!
    )
    set "FichierA=!chemin_complet!!nom_fichier!"
    set "FichierB=!chemin_complet!!nom_sans_tiret!.zip"
    echo A :!FichierA!
    echo B :!FichierB!
    ren "FichierA" "FichierB"
    pause
    )

    Merci de votre aide
    A bientôt
    FH

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Salut,

    Sans trop réfléchir je dirais ça :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    ren "!FichierA!" "!FichierB!"

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Support technique commercial
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Support technique commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Salut,

    Sans trop réfléchir je dirais ça :

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    ren "!FichierA!" "!FichierB!"

    Bonjour,
    Merci
    Mais quand je met "!xxx!" j'ai le message d'erreur La syntaxe de la commande n'est pas bonne...

    A+ FH

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Ajoute en haut de ton script

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    SETLOCAL ENABLEDELAYEDEXPANSION

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Support technique commercial
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Support technique commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut
    Citation Envoyé par ericlm128 Voir le message
    Ajoute en haut de ton script

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    SETLOCAL ENABLEDELAYEDEXPANSION
    Bonsoir,

    Merci

    J'avais déjà ajouter set avant ton message voila le script

    @echo off
    setlocal enabledelayedexpansion
    rem Spécifiez le répertoire dans lequel vous voulez rechercher les fichiers
    set "repertoire=D:\SauveSQLBTG\"
    set "dossier=BTG_DOS_EIE"

    rem Parcourir les fichiers commençant par "xxxxxx"
    for %%A in ("%repertoire%\*-*.zip") do (
    rem Stocker le nom du fichier et du dossier parent dans des variables
    set "nom_fichier=%%~nxA"
    set "dossier_parent=%%~nxA"
    set "chemin_complet=%%~dpA"
    rem Afficher le nom du fichier et le nom du dossier parent
    echo Nom du fichier : !nom_fichier!
    echo Dossier parent : !dossier_parent!
    echo Chemin complet : !chemin_complet!
    rem Extraire la partie avant le premier tiret
    for /f "tokens=1 delims=-" %%c in ("!nom_fichier!") do (
    set "nom_sans_tiret=%%c!extension!"
    echo Nouveau : !nom_sans_tiret!
    )
    set "FichierA=!chemin_complet!!nom_fichier!"
    set "FichierB=!chemin_complet!!nom_sans_tiret!.zip"
    echo A :!FichierA!
    echo B :!FichierB!
    ren "!FichierA!" "!FichierB!"
    pause
    )

    Malheureusement j'ai toujours le message d'erreur La syntaxe de la commande n'est pas correct...

    Merci Bonsoir,
    FH

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 218
    Par défaut
    Voici

    Code batch : 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
    @echo off
    setlocal enabledelayedexpansion
    rem Spécifiez le répertoire dans lequel vous voulez rechercher les fichiers
    set "repertoire=C:\SauveSQLBTG\"
     
    rem Parcourir les fichiers commençant par "xxxxxx"
    for %%A in ("%repertoire%\*-*.zip") do (
    	rem Stocker le nom du fichier et du dossier parent dans des variables
    	set "nom_fichier=%%~nxA"
    	set "dossier_parent=%%~nxA"
    	set "chemin_complet=%%~dpA"
    	rem Afficher le nom du fichier et le nom du dossier parent
    	echo Nom du fichier : !nom_fichier!
    	echo Dossier parent : !dossier_parent!
    	echo Chemin complet : !chemin_complet!
    	rem Extraire la partie avant le premier tiret
    	for /f "tokens=1 delims=-" %%c in ("!nom_fichier!") do (
    		set "nom_sans_tiret=%%c!extension!"
    		echo Nouveau : !nom_sans_tiret!
    	)
    	set "FichierA=!chemin_complet!!nom_fichier!"
    	set "FichierB=!nom_sans_tiret!.zip"
    	echo A :!FichierA!
    	echo B :!FichierB!
    	ren "!FichierA!" "!FichierB!"
    	pause
    )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REN [lecteur:][chemin]nom_de_fichier1 nom_de_fichier2.

Discussions similaires

  1. [Batch] Commande batch pour renommer des fichiers
    Par eole-33 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 12/04/2016, 20h33
  2. [MySQL] conseils pour gérer des images avec mysql
    Par briiice dans le forum Administration
    Réponses: 9
    Dernier message: 04/01/2006, 09h52
  3. Boucler sur une table pour renommer des valeurs
    Par webwhisky dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 03/01/2006, 14h19
  4. Réponses: 24
    Dernier message: 07/12/2005, 10h37
  5. Batch pour copier des fichier
    Par borgfabr dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 09/03/2004, 07h55

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