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
» Problème de compilateur.
par Pedro Alvarez Hier à 20:01

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par Pedro Alvarez Hier à 19:54

» Pb 17 (en analyse): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» Compilateur FBPano
par Mike Jeu 17 Aoû 2017 - 13:52

» un nouveau editeur panobasic
par Jean Claude Jeu 17 Aoû 2017 - 10:18

» Le compilateur.
par Pedro Alvarez Jeu 17 Aoû 2017 - 8:36

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
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 : 5508
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 : 4989
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 : 5508
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 : 4989
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 : 7968
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 : 5508
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
-
» Remplacer le mot message dans qeel
» Petit espace gênant dans la navigation...
» Un espace indésirable dans un message
» Comment enlever l'espace en trop?
» Libérer de l'espace mémoire dans un nuvï

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