Comment copier des chemins de fichiers, y compris l’extension dans un fichier .txt

Par exemple, dans un dossier nommé sample, il y a 3 images à savoir img1.jpg & img2.jpg & img3.jpg

Je veux copier tous les chemins de toutes les images dans un fichier .txt

le contenu de .txt sera

 C:/sample/img1.jpg C:/sample/img2.jpg C:/sample/img3.jpg 

Exécutez ceci dans votre répertoire que vous voulez arborer. Il étend le nom du chemin.

> "dirs.txt" (for %A in (*) do echo %~fA)

Édité en ce qui concerne les commentaires de aschipfl

Je commencerais ici: http://ss64.com/nt/for_d.html . Ce lien montre comment parcourir les fichiers. dans l’exemple, vous pouvez l’utiliser et modifier pour la sortie dans un fichier. Le second est un sharepoint départ pour la production.

 FOR /D /r %G in ("User*") DO Echo We found %G FOR /D /r %G in ("User*") DO Echo "We found %G" >> C:\test.txt 

Vous pouvez utiliser la commande dir avec l’option récursivité et le format nu comme ça

 dir /s /b *.jpg > files.txt 

Référence:

http://ss64.com/nt/dir.html

La réponse de Clayton Wahlstrom est un bon début, mais il peut être amélioré:

  • chaque élément / ligne est redirigé individuellement, car l’opérateur >> est placé dans le corps de la boucle for ; Cependant, la réorientation de toutes les données une fois améliorerait la performance globale;
  • la syntaxe de redirection utilisée oblige chaque ligne à contenir un SPACE final , car il y en a une avant l’opérateur de redirection >> ;
  • vous devez vous assurer que dirs.txt n’existe pas encore ou est initialement vide, car la redirection >> ajoute des données le cas échéant;
  • Je recommande d’utiliser des majuscules for variables de boucle, afin de pouvoir les distinguer des ~ modificateurs;

Pour surmonter tous ces problèmes, il suffit de mettre la boucle entière entre parenthèses () et de faire la redirection > une seule fois, comme ceci:

 > "dirs.txt" (for %A in (*) do echo %~fA)