| Nom court d'un fichier à partir de son nom long | |
|
|
|
Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 1:25 | |
| Lorsqu’on veut exécuter un fichier avec la commande EXECUTE ou EXECUTE_WAIT, s’il existe un (ou plusieurs) espace, dans le chemin et/ou le nom du fichier, la commande ne s’exécute pas et affiche un message d’erreur. La solution est de fournir un nom court. Plusieurs codes ont été publiés sur ce Forum. En voici une SUB (encore une !) qui transforme un chemin long (avec espaces et même des caractères accentués) en un nom court parfaitement reconnu par la commande EXECUTE/EXECUTE_WAIT. Cette SUB se suffit à elle-même : elle n’a besoin ni de dll ni de fichier bat, ni d'aucune autre ressource externe Elle se contente de ce qui existe déjà sur le PC. L’exemple donné dans le code suivant fonctionne parfaitement chez moi. Vous pouvez essayer avec vos propres fichiers. - Code:
-
rem ============================================================================ rem Nom_Court rem ============================================================================ dim fcourt$ Nom_Court("C:\Users\acer\Videos\RealPlayer Downloads/Un bébé qui rigole comme un troll.mp4") 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 ============================================================================
Si le nom du fichier transmis à la SUB n'existe pas, un message vous en informe, sinon, le nom court est renvoyé. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 7:43 | |
| A garder pour bcp de programmes | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 7:54 | |
| Merci Papydall,
Très utile !
A+ | |
|
| |
Francis-mr
Nombre de messages : 186 Date d'inscription : 26/11/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 8:08 | |
| Bonjour, La SUB fonctionne mais les espaces ne sont pas toujours acceptés A+ | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 9:36 | |
| les esapces dans le nom de fichier ? C'est curieux car Papydall l'a mis entre quotes et qu'entre quotes normalement ça marche.
Dernière édition par Jicehel le Jeu 12 Mar 2015 - 13:08, édité 1 fois | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 10:18 | |
|
Dernière édition par JL35 le Jeu 12 Mar 2015 - 10:29, édité 1 fois | |
|
| |
Francis-mr
Nombre de messages : 186 Date d'inscription : 26/11/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 10:26 | |
| | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 10:43 | |
| Tu as peut-être raison Francis-mr, j'ai eu parfois des cas où ça ne marchait pas, j'avais trouvé une autre combine, mais je ne suis plus sûr... Essaie cette syntaxe, pour voir: - Code:
-
SUB FileShort(f$) ' Chemin court fichier f$ -> clipboard EXECUTE_WAIT "cmd /c for %A in ("+CHR$(34)+f$+CHR$(34)+") do @echo %~sA | clip" CLIPBOARD_STRING_COPY LEFT$(CLIPBOARD_STRING_PASTE$, LEN(CLIPBOARD_STRING_PASTE$)-3) END_SUB (le nom court est rendu avec 3 caractères parasites à la fin, d'où leur suppression) | |
|
| |
Francis-mr
Nombre de messages : 186 Date d'inscription : 26/11/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 11:13 | |
| Désolé JL35 mais le résultat est le même. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 12:52 | |
| Bonjour tout le monde. @Francis-mr Je ne comprends pas l’origine de ton problème, car ça doit marcher. Vérifie bien le chemin et le nom du fichier aussi bien transmis à la sub que sur le disque. Je viens de faire l’essai suivant : J’ai crée un dossier : C:\Exemple de dossier aves espaces et autres signes!!! dans lequel j’ai enregistré un fichier sous le nom (un peu du n'importe quoi!): Orages et sécurité aérienne - Documentaire.123 C'est pour tester la SUB(Nom_Court)!!! et aisi de suite.mp4 Le code suivant fonctionne comme il se doit : - Code:
-
nom_court("C:\Exemple de dossier aves espaces et autres signes!!!\Orages et sécurité aérienne - Documentaire.123 C'est pour tester la SUB(Nom_Court)!!! et aisi de suite.mp4") message fcourt$ if fcourt$ <> "" then execute_wait fcourt$
Ça prouve que (au moins chez moi W7) ça marche même avec un nom de fichier aussi bizarre. @JL35 S’il t’en reste un morceau "d’entrecôtes", envois m’en un peu !
Dernière édition par papydall le Jeu 12 Mar 2015 - 12:55, édité 1 fois | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 12:53 | |
| Alors ça ne doit pas être la bonne solution... mais quel est ce nom long que tu essaies de raccourcir ? sur ton image ce n'est pas très (pas du tout) lisible...
On s'est croisés papydall... | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 13:12 | |
| Si dans ton disque, il y a le répertoire MP3 dans le répertoire compile, tu dois écrire: C:\COMPIL\MP3 sans espaces dedans. si ton répertoire s'appelle " MP3" avec un espace devant, je ne pense pas que le système l'accepte ..., mais ça ce n'est pas lié au programme mais au système d'exploitation. D'après la capture, je dirais donc que tu as écrit un nom de fichier qui n'existe pas car il y aurait (si je vois bien) des esapces en trop dans le nom.
| |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 13:15 | |
| - Papydall a écrit:
- S’il t’en reste un morceau "d’entrecôtes", envois m’en un peu !
Je préfère la côte de bœuf @Francis-mr, Le message semble indiquer que le fichier n'existe pas tout simplement A+ PS: on s'est croisé Jicehel, et on arrive à la même conclusion: le fichier n'existe pas.
Dernière édition par Jean Claude le Jeu 12 Mar 2015 - 13:17, édité 1 fois | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 13:16 | |
| Effectivement Jicehel, en regardant bien l'image ça ressemble à ça, mais il aurait été intéressant de fournir tout simplement 1) la chaîne donnée en paramètre, et 2) la chaîne récupérée au retour. @Jicehel Je vois que tu as corrigé ton post avec les côtes et les quotes, du coup mon message qui suit ne veux plus rien dire ! | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 13:48 | |
| Je récapitule. D’après Jean Claude, Jean(?) JL35, Jean Charles Jicehel, (disons tous ou la majorité des Jean) la sub fonctionne, sauf pour Francis-mr. Y a-t-il un autre Francis chez qui ça ne marche pas ? | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 13:58 | |
| Ton hypothèse est juste papydall. D'un autre côté j'aurais bien aimé voir la chaîne (path) fournie en paramètre, l'hypothèse de l'espace mal placé me chiffonne, du fait que tu fais un If File_Exists et que ça passe ce test... | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 14:11 | |
| D’après le message d’erreur rencontré par Francis Windows ne trouve pas ‘C:\Compil’.Vérifiez que vous avez entré le nom correct, puis réessayez.
L’origine de ce message est Windows et non Panoramic, car si le fichier n’existe pas, le programme afficherait Ce fichier n’existe pas ! Vérifiez votre chemin puisque la SUB vérifie d'ABORD l''existence ou non du fichier.
Dernière édition par papydall le Jeu 12 Mar 2015 - 14:17, édité 1 fois | |
|
| |
Francis-mr
Nombre de messages : 186 Date d'inscription : 26/11/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 14:16 | |
| Merci à Papydall, JL35, Jicehel et Jean Claude pour leur post. Je suis sous Win 7 et il n'y-a aucune erreur de chemin et de nom de fichier dans mon exemple. Mais j'ai remarqué que la SUB fonctionne très bien sur mon disque C mais pas sur mon disque dur extérieur Mais cela n'est pas grave pour moi. A+ | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 14:26 | |
| On essaye de comprendre pour avancer, c’est tout. … Et d’échanger des propos aussi. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 15:01 | |
| Francis-mr, tu as bien pensé à brancher ton disque dur externe ? Bon, je plaisante, mais ce serait intéressant de nous donner le chemin complet que tu fournis à la sub, pour essayer de reproduire le phénomène chez nous. Même sur un disque externe. Ça pourrait être instructif pour tout le monde. | |
|
| |
Francis-mr
Nombre de messages : 186 Date d'inscription : 26/11/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 18:06 | |
| J’ai écrit une ânerie précédemment, ça ne fonctionne pas mieux sur le disque C. Si je donne le chemin: Nom_Court("C:\Program Files\MaPhoto.jpg"), pas de problème. Mais avec le chemin: Nom_Court("C:\Album photo\MaPhoto.jpg"), j’ai le message « Windows ne trouve pas ‘C:\Album’. Vérifiez… » Pourtant le fichier MaPhoto.jpg est bien dans le répertoire C:\Album photo Je n'ai pas d'utilité de cette SUB, mon interrogation est seulement pour faire avancée le Schmilblick. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nom court d'un fichier à partir de son nom long Jeu 12 Mar 2015 - 19:51 | |
| Bizarre, chez moi ça marche, j'ai créé ton répertoire et ton image et je fais (sous W7): - Code:
-
dim f$,fcourt$ f$ = "C:\Album Photo\MaPhoto.jpg" Nom_Court(f$) message 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 ============================================================================ et j'obtiens bien: Idem si j'écris l'appel sous la forme: Nom_Court("C:\Album Photo\MaPhoto.jpg") | |
|
| |
Francis-mr
Nombre de messages : 186 Date d'inscription : 26/11/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Ven 13 Mar 2015 - 5:05 | |
| Bonjour, JL35 ton code ne donne plus le message d'erreur car tu as retiré la ligne "if fcourt$ <> "" then execute_wait fcourt$" et il met dans le presse papier le nom long "C:\Album Photo\MaPhoto.jpg". Il faut que j'étudie la question (ce soir ou demain) mais je crois, qu'il y-a quelque temps, j'avais désactivé les noms courts avec la commande "fsutil 8dot3name set 1". A+ | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nom court d'un fichier à partir de son nom long Ven 13 Mar 2015 - 6:09 | |
| Pour activer la création de nom 8dot3 sur tous les volumes du système : En ligne de commande, faire : - Code:
-
Fsutil 8dot3name set 0
Son effet est immédiat. Le redémarrage n'est pas nécessaire. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Nom court d'un fichier à partir de son nom long Ven 13 Mar 2015 - 13:32 | |
| Oui ça doit être ça qui provoque l'erreur chez Francis_mr, je ne savais même pas qu'on pouvait activer ou désactiver cette fonction... | |
|
| |
Contenu sponsorisé
| Sujet: Re: Nom court d'un fichier à partir de son nom long | |
| |
|
| |
| Nom court d'un fichier à partir de son nom long | |
|