Création de raccourcis des fichiers d'un répertoire
Fermé
Trareo
Messages postés
2
Date d'inscription
lundi 23 mai 2022
Statut
Membre
Dernière intervention
29 mai 2022
-
27 mai 2022 à 00:01
brucine Messages postés 17916 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 28 novembre 2024 - 30 mai 2022 à 10:43
brucine Messages postés 17916 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 28 novembre 2024 - 30 mai 2022 à 10:43
A voir également:
- Création de raccourcis des fichiers d'un répertoire
- Raccourcis clavier word - Guide
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Creation compte gmail - Guide
- Création compte google - Guide
2 réponses
brucine
Messages postés
17916
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
28 novembre 2024
2 620
27 mai 2022 à 09:15
27 mai 2022 à 09:15
Bonjour,
La question est réputée ne pas avoir de solution en batch pur sauf peut-être via MKLINK:
https://ss64.com/nt/mklink.html
sans quoi il faut utiliser PowerShell ou WSH, bien moins "convivial" pour le profane.
Elle semble être résolue au plus simple via des utilitaires externes.
SHORTCUT était historiquement intégré aux anciennes versions de Windows mais est maintenant un utilitaire externe:
https://ss64.com/nt/shortcut.html
D'autres utilitaires sont évoqués, par exemple shortcutUS.bat qui est lui aussi un script hybride mais qui présente l'intérêt d'être "prêt à l'emploi":
https://github.com/npocmaka/batch.scripts/blob/master/hybrids/jscript/shortcutJS.bat
ou NirCmd shortcut:
http://nircmd.nirsoft.net/shortcut.html
L'ensemble de ces voies est ambigu, pouvant nécessiter tantôt des droits administrateurs, ou devoir s'exécuter dans le même dossier que celui où elles sont lancées, ou ne s'adresser qu'à des raccourcis internet ou d'exécutables, pas de simples fichiers.
La deuxième difficulté est qu'il faudra ensuite boucler la commande utilisée par une sentence FOR de manière à l'appliquer à tous les fichiers de n répertoires présentant telle extension, ce qui va être compliqué si n est grand (il y en a combien?) et sous-tend que la commande en question va accepter des caractères génériques ou des variables.
Je t'invite dans un premier temps à tester isolément laquelle de ces commandes donne le résultat sur un fichier isolé, il sera ensuite temps de s'attaquer au deuxième point et quand tu indiqueras combien de dossiers sont concernés et, s'ils nombreux, s'ils ont des spécificités (chemin, nom....).
La question est réputée ne pas avoir de solution en batch pur sauf peut-être via MKLINK:
https://ss64.com/nt/mklink.html
sans quoi il faut utiliser PowerShell ou WSH, bien moins "convivial" pour le profane.
Elle semble être résolue au plus simple via des utilitaires externes.
SHORTCUT était historiquement intégré aux anciennes versions de Windows mais est maintenant un utilitaire externe:
https://ss64.com/nt/shortcut.html
D'autres utilitaires sont évoqués, par exemple shortcutUS.bat qui est lui aussi un script hybride mais qui présente l'intérêt d'être "prêt à l'emploi":
https://github.com/npocmaka/batch.scripts/blob/master/hybrids/jscript/shortcutJS.bat
ou NirCmd shortcut:
http://nircmd.nirsoft.net/shortcut.html
L'ensemble de ces voies est ambigu, pouvant nécessiter tantôt des droits administrateurs, ou devoir s'exécuter dans le même dossier que celui où elles sont lancées, ou ne s'adresser qu'à des raccourcis internet ou d'exécutables, pas de simples fichiers.
La deuxième difficulté est qu'il faudra ensuite boucler la commande utilisée par une sentence FOR de manière à l'appliquer à tous les fichiers de n répertoires présentant telle extension, ce qui va être compliqué si n est grand (il y en a combien?) et sous-tend que la commande en question va accepter des caractères génériques ou des variables.
Je t'invite dans un premier temps à tester isolément laquelle de ces commandes donne le résultat sur un fichier isolé, il sera ensuite temps de s'attaquer au deuxième point et quand tu indiqueras combien de dossiers sont concernés et, s'ils nombreux, s'ils ont des spécificités (chemin, nom....).
Trareo
Messages postés
2
Date d'inscription
lundi 23 mai 2022
Statut
Membre
Dernière intervention
29 mai 2022
29 mai 2022 à 17:00
29 mai 2022 à 17:00
Merci beaucoup pour ce retour!
je vais suivre ton conseil concernant les tests
Pour ce qui est du nb de fichier, on va dire 200 par répertoire (et il y aura 4 ou 5 répertoires équivalents)
je vais suivre ton conseil concernant les tests
Pour ce qui est du nb de fichier, on va dire 200 par répertoire (et il y aura 4 ou 5 répertoires équivalents)
brucine
Messages postés
17916
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
28 novembre 2024
2 620
Modifié le 30 mai 2022 à 10:44
Modifié le 30 mai 2022 à 10:44
Bonjour,
Je n'ai trouvé à faire fonctionner que Nircmd.
Aller là, http://nircmd.nirsoft.net/shortcut.html , télécharger NirCmd par le lien Download NirCmd tout en bas, dézipper le fichier dans un dossier par exemple NirCmd.
Copier nircmd.exe sous C:\Windows qui proteste, faire continuer.
J'ai fait le test avec des fichiers pdf, docx (je n'ai pas d'odt) et autres extensions contenus dans le dossier C:\Users\bru\Desktop\test, et j'ai créé un dossier de destination C:\Users\bru\Desktop\raccourcis.
Les conséquences en sont que:
-je n'ai pas supprimé le dossier raccourcis en fin d'opération; si je refais l'opération alors que je veux conserver le dossier existant, je dois supprimer la ligne MD
-je dois bien sûr remplacer *.docx par *.odt
-je dois remplacer le chemin du fichier tmp par celui de mon choix.
-je n'ai appliqué la manipulation qu'à un seul dossier test.
Il est bien sûr possible de rajouter 2 lignes DIR pour chaque nom de dossier, mais on va se faire planter par la source test dans la ligne NIRCMD sauf à créer un nouveau bouclage en appelant le nom de dossier par une variable ou une liste txt puis en appelant un nouveau PROCESS pour la ligne NIRCMD.
S'il n'y a que 4 ou 5 dossiers, on va y passer plus de temps qu'on va en gagner, il vaut sûrement mieux lancer le batch 5 fois en changeant à chaque fois test dans DIR et NIRCMD (et bien sûr en virant la ligne MD).
Si on est fainéant, on rajoute en tête de gondole une ligne:
SET/P FOLDPATH="Entrer chemin du dossier source"
et on remplace chaque occurrence de C:\Users\bru\Desktop\test par %FOLDPATH%
Je n'ai trouvé à faire fonctionner que Nircmd.
Aller là, http://nircmd.nirsoft.net/shortcut.html , télécharger NirCmd par le lien Download NirCmd tout en bas, dézipper le fichier dans un dossier par exemple NirCmd.
Copier nircmd.exe sous C:\Windows qui proteste, faire continuer.
J'ai fait le test avec des fichiers pdf, docx (je n'ai pas d'odt) et autres extensions contenus dans le dossier C:\Users\bru\Desktop\test, et j'ai créé un dossier de destination C:\Users\bru\Desktop\raccourcis.
Les conséquences en sont que:
-je n'ai pas supprimé le dossier raccourcis en fin d'opération; si je refais l'opération alors que je veux conserver le dossier existant, je dois supprimer la ligne MD
-je dois bien sûr remplacer *.docx par *.odt
-je dois remplacer le chemin du fichier tmp par celui de mon choix.
-je n'ai appliqué la manipulation qu'à un seul dossier test.
Il est bien sûr possible de rajouter 2 lignes DIR pour chaque nom de dossier, mais on va se faire planter par la source test dans la ligne NIRCMD sauf à créer un nouveau bouclage en appelant le nom de dossier par une variable ou une liste txt puis en appelant un nouveau PROCESS pour la ligne NIRCMD.
S'il n'y a que 4 ou 5 dossiers, on va y passer plus de temps qu'on va en gagner, il vaut sûrement mieux lancer le batch 5 fois en changeant à chaque fois test dans DIR et NIRCMD (et bien sûr en virant la ligne MD).
Si on est fainéant, on rajoute en tête de gondole une ligne:
SET/P FOLDPATH="Entrer chemin du dossier source"
et on remplace chaque occurrence de C:\Users\bru\Desktop\test par %FOLDPATH%
@ECHO OFF
REM LIGNE SUIVANTE SI ACCENTS DANS NOMS FICHIERS
CHCP 65001
MD C:\Users\bru\Desktop\raccourcis
DIR /B /a-d C:\Users\bru\Desktop\test\*.docx >> C:\Users\bru\Desktop\tmp.txt
DIR /B /a-d C:\Users\bru\Desktop\test\*.pdf >> C:\Users\bru\Desktop\tmp.txt
FOR /F "tokens=1-2 delims=." %%a IN (C:\Users\bru\Desktop\tmp.txt) DO SET NAME=%%a & SET EXT=%%b & CALL :PROCESS
DEL C:\Users\bru\Desktop\tmp.txt
GOTO :EOF
:PROCESS
SET NAME=%NAME:~0,-1%
SET POINT=.
SET SRC=%NAME%%POINT%%EXT%
NIRCMD SHORTCUT "C:\Users\bru\Desktop\test\%SRC%" "C:\Users\bru\Desktop\raccourcis" "%NAME%"
EXIT /B
:EOF