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 17606 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 9 novembre 2024 - 30 mai 2022 à 10:43
Bonjour,
Je souhaiterais créer automatiquement (via batch) des raccourcis de fichiers provenant de plusieurs répertoires :
REP1/*.odt et *.pdf
REP2/*.odt et *.pdf
etc.

vers
REP_CIBLE/ avec des liens vers les fichiers des REP1 et REP2

Auriez-vous des pistes?

NOTA : l'objet est d'avoir une vision de la totalité des fichiers des répertoires REP1 et REP2 dans un seul répertoire REP_CIBLE, avec possibilité de modifier les fichiers (via les raccourcis)
Donc si vous avez à l'idée une autre solution permettant de voir les fichiers de plusieurs répertoires en même temps dans la même fenetre (sans taper une recherche à chaque fois), cela pourrait également convenir

Merci beaucoup!
A voir également:

2 réponses

brucine Messages postés 17606 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 9 novembre 2024 2 566
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....).
0
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
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)
0
brucine Messages postés 17606 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 9 novembre 2024 2 566
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%


@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
0