× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Windows 7
 Nommer automatiquement le fichier txt au nom du répertoire listéSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
tease
  Posté le 06/05/2016 @ 13:25 
Aller en bas de la page 
Petite astucienne

Bonjour Astuciennes et Astuciens.

Voilà une commande batch qui me permet de lister un répertoire:

@echo off

CHCP 1252 >nul

dir %1 /-p /s /o:gn > "%temp%\Listing"

start /w notepad "%temp%\Listing"

exit

Je voudrais savoir s'il y a une commande à modifier ou à ajouter pour que le fichier txt ait le même nom que le répertoire listé et non Listing.txt

Merci de bien vouloir m'aider.



Modifié par tease le 06/05/2016 14:46
Publicité
Titus68
 Posté le 06/05/2016 à 17:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Tu peux reprendre %1

dir %1 /-p /s /o:gn > "%temp%\%1 ou

dir %1 /-p /s /o:gn > "%temp%\%1.txt

Le seul problème est que si %1 est un nom de répertoire complet il ne va pas aimer les \

Exemple :

Si %1 c'est : C:\toto\tata çà va coincer

mais si %1 c'est tata c'est ok

tease
 Posté le 06/05/2016 à 18:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour Titus68.

Merci de m'avoir aidée encore une fois (https://forum.pcastuces.com/comment_lister_le_contenu_un_cd_dvd_flashdisk_-f3s27938.htm)

J'ai suivi ton conseil mais apparemment ça ne fonctionne pas. Il y a création du fichier TXT mais ça me met .txt (je dois nommer le fichier car il ne porte aucun nom)

Voici ce que j'ai mis à moins que je me suis trompée.

@echo off

CHCP 1252 >nul

dir %1 /-p /s /o:gn > "%temp%\%1"

start /w notepad "%temp%\%1"

exit

Merci encore une fois.

nomisam
 Posté le 06/05/2016 à 20:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Essaye ceci :

dir %1 /-p /s /o:gn > "%temp%\%~n1"

@+

Banzaiii
 Posté le 06/05/2016 à 20:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

@echo off

CHCP 1252 >nul

dir %1 /-p /s /o:gn > "%temp%\%1.txt"

start /w notepad "%temp%\%1.txt"

exit

tu lances bien le bat en tapant nom_du_bat nom_du_répertoire ?

Sinon il est normal que le nom de fichier soit vide puisque tu n'indiques rien pour la variable %1



Modifié par Banzaiii le 06/05/2016 20:09
tease
 Posté le 06/05/2016 à 20:57 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonsoir Banzaiii

Merci pour ton intervention.

En fait, je n'ai rien à taper, je mets le fichier Listing.bat ou le fichier compilé Listing.exe dans le répertoire à lister. Je double-clic dessus et j'obtiens le fichier Listing.txt qui affiche bien tous les sous-répertoires et fichiers.

Je voudrais avoir le fichier .txt directement avec le nom du répertoire listé.

J'ai essayé avec ce que vous m'avez donné tous les deux mais le fichier s'affiche ainsi .txt

Merci.

yves.vaissiere
 Posté le 06/05/2016 à 22:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Grand Maître astucien

Bonsoir,

en fait avec %1 le dossier serait, normalement, à draguer (ou Envoyer vers, ou menu contextuel) sur le bat, ou sur un raccourci vers lui.

D'autre part si bat, doublement des % parait-il ...

nomisam
 Posté le 06/05/2016 à 22:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir tease,

Essaie ce batch pour voir :

@echo off
CHCP 1252 >nul
set Doss=%~p0
set Doss=%Doss:~0,-1%
call :FCT %Doss%
exit
:FCT
set FIC=%~n1
dir /-p /s /o:gn > "%temp%\%FIC%.txt"
start /w notepad "%temp%\%FIC%.txt"
goto :EOF

Comme tu utilises la variable TEMP (%temp%) ton fichier [NomDossier].txt se trouve donc dans

le dossier C:\Users\[TonNomUtilisateur]\AppData\Local\Temp

@+

tease
 Posté le 06/05/2016 à 22:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonsoir yves.vaissiere

Bonsoir nomisam

@ nomisam. Le fichier .txt s'affiche mais bizarrement nommé DVD.txt alors que le répertoire listé ne se trouve pas sur DVD mais sur disque dur.

Merci à vous deux.

Publicité
nomisam
 Posté le 06/05/2016 à 22:51 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Quel est le nom du dossier ? C'est pas DVD ?



Modifié par nomisam le 06/05/2016 22:59
Titus68
 Posté le 06/05/2016 à 23:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

à tous,

Bon ben çà alors :

@echo off
CHCP 1252 >nul
for %%* in (.) do set CurrDirName=%%~nx*
dir /-p /s /o:gn > "%temp%\%CurrDirName%.txt"
start /w notepad "%temp%\%CurrDirName%.txt"
exit

C'est pas de moi, j'ai trouvé çà là :

http://superuser.com/questions/160702/get-current-folder-name-by-a-dos-command

Pour %1 je pensais que tu passais comme paramètre à ton batch un nom de dossier mais vu que çà n'est pas le cas %1 ne sert à rien.



Modifié par Titus68 le 06/05/2016 23:08
Titus68
 Posté le 06/05/2016 à 23:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Je viens de tester le script de Nomisam : çà marche impec chez moi

Pour ton script tu le copies dans le dossier que tu veux lister et tu le lances, c'est çà ?



Modifié par Titus68 le 06/05/2016 23:07
tease
 Posté le 06/05/2016 à 23:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

En fait, j'ai créé un sous-répertoire contenant différents fichiers afin de tester le fichier Listing.bat ou le fichier compilé Listing.exe

Voici le chemin complet:

C:\Comment lister le contenu d'un répertoire\Répertoire des tests

Merci.

Titus68
 Posté le 06/05/2016 à 23:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

tease

Oui mais ton script tu le lances depuis quel dossier car il n'y a pas de dossier DVD là.

Le script que l'on t'a proposé récupère le nom du répertoire dans lequel le script est lancé.

Si tu lances ton script pour lister un autre répertoire il faut bien l'indiquer au script à un moment donné en passant le chemin du répertoire à lister à ton script, par exemple

Listing.bat "C:\Comment lister le contenu d'un répertoire\Répertoire des tests"

Dans ce cas %1 contiendrait alors dans ton script "C:\Comment lister le contenu d'un répertoire\Répertoire des tests"

A partir de là effectivement il y a moyen de faire quelquechose.

J'ai peut-être mal compris

nomisam
 Posté le 06/05/2016 à 23:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Désolé !

Dans le batch que j'ai proposé il faut mettre des guillemets pour prendre en compte les espaces

comme ci-dessous

call :FCT "%Doss%"

Titus68
 Posté le 06/05/2016 à 23:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Je pense avoir compris. Donc ton script est dans :

C:\Comment lister le contenu d'un répertoire

et toi tu veux lister tout ce qu'il y a dans le sous-dossier :

Répertoire des tests

et pour ton fichier listing.txt çà devrait être alors Répertoire des tests.txt ?

nomisam
 Posté le 06/05/2016 à 23:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Titus, mes excuses; j'ai omis de te saluer, Bonsoir donc !

Comme toi je pige pas trop ce qu'elle désire.

tease, sans les guillemets si ton dossier se nommait "DVD + autre texte", alors le batch n'a pris en compte que DVD

Avec les guillemets c'est comme ci-dessous

Publicité
Titus68
 Posté le 06/05/2016 à 23:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Aucun souci Nomisam !

tease
 Posté le 07/05/2016 à 00:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Me revoilà!

@Titus68. Ta commande fonctionne à merveille.

@ nomisam. J'ai ajouté les guillemets, j'ai testé et ça marche impeccablement.

BRAVO!!!! MERCI de m'avoir aidée et je sais que je peux compter sur vous. Bonne soirée et j'espère vous relire bientôt.



Modifié par tease le 07/05/2016 00:20
Titus68
 Posté le 07/05/2016 à 00:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Merci Tease. Si c'est ok peux tu passer le sujet en résolu ?

A la prochaine

nomisam
 Posté le 07/05/2016 à 00:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

tease merci pour le retour .

Et bonne nuit à vous tease et Titus68

Bye, bye

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
36,99 €Disque dur Toshiba P300 1 To à 36,99 €
Valable jusqu'au 24 Octobre

Amazon propose actuellement le disque dur Toshiba P300 1 To à 36,99 € livré gratuitement. On le trouve ailleurs à partir de 45 €. Ce disque dur interne de 1 To est SATA 6 Gbps, possède 64Mo de cache et dispose d'une vitesse de rotation de 7200 tpm.


> Voir l'offre
16,99 €Ensemble clavier + souris Logitech MK120 à 16,99 €
Valable jusqu'au 22 Octobre

Amazon fait une promotion sur l'ensemble clavier + souris sans fil Logitech MK120 qui passe à 16,99 € alors qu'on le trouve habituellement autour de 25 €. Ce duo combine simplicité, confort, et prix attractif. Le clavier, silencieux, présente des touches à l'écriture particulièrement lisible et au design ultra-plat, couplées à une barre espace suffisamment incurvée pour améliorer la position de vos mains pendant que vous l'utiliserez. Résistant aux éclaboussures, il saura se protéger des accidents éventuels. Quant à la souris 3 boutons, nécessitant elle aussi un port USB pour fonctionner, elle se présente sous une forme ambidextre qui satisfera le plus grand nombre. Si vous ne souhaitez pas de fil, tournez-vous vers le modèle MK270 à 24,99 €.


> Voir l'offre
62,66 €Outil 3 en 1 Coupe-bordure/Tondeuse/Dresse-bordure 550 W 30 cm Black + Decker à 62,66 €
Valable jusqu'au 22 Octobre

Amazon fait une promotion sur l'outil 3 en 1 Black + Decker ST5530CM qui passe à 62,66 € livré gratuitement alors qu'on le trouve ailleurs à partir de 80 €. Cet outil de 550W pour le jardin regroupe un coupe-bordure, une tondeuse 30 cm et un dresse-bordure.


> Voir l'offre

Sujets relatifs
Aucun sujet pertinent lié trouvé
 > Tous les forums > Forum Windows 7