FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» I Love You
par JL35 Hier à 16:25

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 Remplacer espace par tiret dans noms des dossiers / fichiers

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
papydall

avatar

Nombre de messages : 5546
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Remplacer espace par tiret dans noms des dossiers / fichiers   Mar 20 Juin 2017 - 18:18

Vous avez des dossiers, sous-dossiers et fichiers dont le nom comporte un ou plusieurs espaces.
Vous voulez les renommer en remplaçant les espaces par des tirets pour mieux les manipuler sous Windows.

Le code suivant fait le boulot et vous décharge d’une pénible tâche.
Code:

@echo off
setlocal enabledelayedexpansion
 for /f "delims=" %%a In ('dir /b/a-d/s/a  "C:\Users\acer\Desktop\Exemple de dossier" ') Do (
     set "$File=%%~nxa"
     set "$File=!$File: =-!"
     ren "%%a" "!$File!"
    )
pause

Vous devez modifier (ligne 3) le nom de votre dossier à traiter.
Enregistrer le code sous RemplaceEspace.bat (par exemple, ou sous un autre nom de votre choix : l'extension doit obligatoirement être .bat) puis exécutez-le.
Comme exemple, j’ai testé sur un dossier "C:\Users\acer\Desktop\Exemple de dossier" qui contenait :
Deux sous-dossiers :
Exemple de sous repertoire 1
Exemple de sous repertoire 2

Quatres fichiers :
Exemple de fichier 1
Exemple de fichier 2
Exemple de fichier 3
Exemple de fichier 3

Après exécution, tous les espaces dans les noms des sous-dossiers et des fichiers sont remplacés par des tirets.
j’obtiens:
 

Edit :
Si vous voulez que le caractère espace soit remplacé par le caractère underscor(_), il suffit de remplacer, à la fin de la ligne 5, le signe -! par _!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Remplacer espace par tiret dans noms des dossiers / fichiers   Mar 20 Juin 2017 - 21:41

Papydall a écrit:
Vous avez des dossiers, sous-dossiers et fichiers dont le nom comporte un ou plusieurs espaces.
Vous voulez les renommer en remplaçant les espaces par des tirets pour mieux les manipuler sous Windows.

Le code suivant fait le boulot et vous décharge d’une pénible tâche.

Quel intérêt, je ne saisi pas bien la finalité. Que veux-tu dire par "pour mieux les manipuler sous Windows" ?
Question

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5546
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Remplacer espace par tiret dans noms des dossiers / fichiers   Mer 21 Juin 2017 - 1:08

Le chemin d’accès à ton bureau est : C:\Users\Jean Claude\Desktop
Supposons que tu disposes sur le bureau d’un fichier test.exe et que tu veuilles le lancer à partir de Panoramic.
Tu essais d’exécuter le code suivant :
Code:

execute_wait "C:\Users\Jean Claude\Desktop\test.exe"


Tu seras gratifié par un message d' erreur :
Windows ne trouve pas ‘C:\Users\Jean’
Car Windows s’arrête au 1er caractère espace trouvé qu’il considère comme la fin du nom du dossier / fichier.

Mon code RemplaceEspace.bat va renommer tous les fichiers et les sous-dossiers en remplaçant tous les espaces par des tirets(-) ou des (_).

Voilà l’(in)utilité du code si utilité y en a.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Jean Claude

avatar

Nombre de messages : 5040
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Remplacer espace par tiret dans noms des dossiers / fichiers   Mer 21 Juin 2017 - 9:17

Hé oui Papydall,

Je me doutais bien que ta proposition visait à ce que change le nom de mon dossier utilisateur pour ne plus avoir d'espace dans ce nom.
Je parle pour moi, mais je sais que tu t'adresses à tous.

Pour mon cas, je ne changerai pas le nom de mon dossier utilisateur pour une raison principale:
Yannick cherche actuellement une solution pour rendre un des ses programmes portable. Pour le moment il a diverses solutions dont une que tu connais bien, vu que c'est toi qui l'a créée.
celle-ci:
Code:
rem ============================================================================
rem          Nom_Court        Papydall
rem ============================================================================
dim fcourt$
Nom_Court("C:\Users\Jean Claude\Desktop\DSC05026.JPG") : ' chemin à adapter
message fcourt$
if fcourt$ <> "" then execute_wait fcourt$
end
rem ============================================================================
SUB Nom_Court(f$)
    if file_exists(f$) > 0
      execute_wait "cmd /c for %i in ("+chr$(34)+f$+chr$(34)+") do echo.%~sfi |clip"
      fcourt$ = clipboard_string_paste$
    else
      message "Ce fichier n'existe pas!" + chr$(13)+"Vérifier votre chemin"
    END_IF
END_SUB
rem ============================================================================
Je préfère que ce soit Panoramic qui retrouve le nom court, plutôt que ce soit l'utilisateur qui change ses nom de fichiers ou de répertoire.

Merci quand même, car cela peut être utile à certain.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Mer 21 Juin 2017 - 12:28

@ Papydall,

Cette fonction est très bien et peut être utile mais je n' ose pas imaginer la tête
de mon utilisateur si je lui change tous ces noms de dossier.
affraid
Surtout si dans les paramètres d' autres applications il a les chemins avec les espaces.
affraid affraid
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
papydall

avatar

Nombre de messages : 5546
Age : 67
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

MessageSujet: Re: Remplacer espace par tiret dans noms des dossiers / fichiers   Mer 21 Juin 2017 - 15:27

Yannick a écrit:
Cette fonction est très bien et peut être utile mais je n' ose pas imaginer la tête
de mon utilisateur si je lui change tous ces noms de dossier.

Il ne s’agit pas de changer les noms de dossiers et/ou des fichiers d’un utilisateur lorsqu’il exécute l’un de tes codes.
C’est l’utilisateur lui-même qui désire renommer un ensemble de fichiers et c’est dans ce cas précis que le code que j’ai posté peut s’avérer utile, puisqu’il effectue la tâche automatiquement.
Supposez que vous commencer à renommer vos fichiers individuellement …


Supposons que je dispose d’un dossier Photos de Vacances qui contient une centaine de photos de mes petits-fils, nommés :
Tesnim a la plage.jpg
Yakine au musee.jpg
Yassine a cheval.bmp
Tarek a velo.bmp
Yussef sur le plongeoir.bmp
Rihem joue sur la plage.bmp
Ahmed a la peche.bmp
Etc.


En lançant  RemplaceEspace.bat, j’obtient instantanément ma liste renommée

Tesnim_a_la_plage.jpg
Yakine_au_musee.jpg
Yassine_a_cheval.bmp
Etc.


Bon, c’est une idée de code que l’on peut ou pas adopter et adapter à ses besoins !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé




MessageSujet: Re: Remplacer espace par tiret dans noms des dossiers / fichiers   

Revenir en haut Aller en bas
 
Remplacer espace par tiret dans noms des dossiers / fichiers
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Libérer de l'espace mémoire dans un nuvï
» coordonnées GPS sur SP c320 et tiret dans l'adresse
» Utiliser les fichier GPX sur Garmin 2445 LMT
» gps snooper de ventura
» Remplacer tous les espaces par _ dans les noms des fichiers

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: