Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Resolu] Non du 1er fichier dans un dossier
Auteur Message
Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Salut,
J'ai un grand nombre de répertoire pour lesquels je réalise une boucle et je cherche à récupérer le nom du 1er fichier dans chacun de ceux - ci.

C'est cette partie qui me pose problème, comment récupérer le nom du 1er fichier d'un dossier sans l'extension ?

un coup de main serait grandement apprécié, piètre niveau en programmation et cela m'empêche d'avancer depuis quelque tems déjà..

merci Smile

Alan



Dernière édition par Alan56 le Mer 27 Mai 2015 - 16:08; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Salut Wink

Pour avoir le nom du fichier sans l'extension fais :
Code:
FOR /D %%i IN ("dossier\fichier.txt") DO set name_file=%%~ni
echo %name_file%


Voilà, à adapter avec ton code Okay a++




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Merci bien pour ta réponse rapide et pour le coup de main Wink

cela résout une partie de mon problème, avec ce code pas de souci j'arrive à récupérer le nom de mon fichier sans l'extension !

Par contre la principale difficulté avec laquelle je galère un peu et de récupérer le nom du 1er fichier par ordre alphabétique dans un répertoire qui en comporte plusieurs.
Ex: dans le repertoire test:
file1.txt
file2.txt
..
file99.txt

c'est uniquement la valeur "file1" que je souhaite récupérer ..

Tu saurais m'aiguiller vers un élément de réponse !?

Merci Wink

Alan



Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Tu peux éventuellement récupérer les noms des fichiers avec FOR et les mettre dans un fichier. Ensuite tu peux utiliser la commande SORT sur ce fichier pour avoir les noms dans l'ordre, puis t'as plus qu'à récupérer la première entrée du fichier Okay

Voilà ce que ça donne!
Code:

@echo off
for %%F in (*.*) do echo %%F >>temp.tmp

sort temp.tmp /o temp2.tmp

set/p fichier=<temp2.tmp

del/q  temp.tmp
del/q temp2.tmp
cls
echo %fichier%
PAUSE





______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Merci bien Hugo, la combinaison de ton code avec celui de Skywalker me permet d'avancer Very Happy



Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Juste pour info :

DIR /ON te retourne les noms par ordre alphabetique.

donc :

Code:
for /f "delims=" %%a in ('dir /on') do (
    set $fichier="%%~na"
    goto:next)

:next
echo le premier fichier -^> %$fichier%



Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Cette fameuse commande DIR que je n'utilise presque jamais et que je pense jamais à utiliser Rolling Eyes




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Bon je bloque encore..effectivement vos conseils avisés dans ce sujet me permettent de récupérer le nom du 1er fichier d'un répertoire sans son extension et pour cela merci encore !!

En gros je travaille sur des fichiers météo de 1987 à 2012 et j'ai un répertoire pour chaque mois de chaque année avec à l'intérieur autant de fichiers qu'il y a de jours pour chaque mois. Pour l'instant j'espère être clair.
Afin de réduire mon nombre de fichiers je souhaite les assembler par mois. Le format des fichiers est le netcdf, des utilitaires de commande existent pour réaliser des opérations sur ceux - ci mais là n'est pas le problème.

Afin de les concaténer, il me faut 2 valeurs, le nombre de fichiers dans chaque répertoire et le nom du 1er fichier par ordre alphabétique sans l'extension. C'est pourquoi j'utilise le DOS ou enfin j'essaie..pour récupérer ces valeurs.

J'arrive donc au bon résultat et grâce à vous mais pour un seul répertoire, çà ne fonctionne pas dans une boucle pour plusieurs mois.

Ci - dessous un exemple :
Code:

@echo off

REM boucle sur les mois de juillet, septembre et aôut
FOR %%g IN (07 08 09) DO (

REM Recherche le nombre de fichiers pour chaque mois (nécessaire pour définir le nombre de fichiers à concaténer).
DIR C:\1987\%%g > C:\test.txt
FIND "fichier(s)" C:\test.txt > C:\tmp.txt
FOR /F "skip=2 tokens=1 delims= " %%i in (C:\tmp.txt) do (
echo ## nbre=%%i


for %%h in (C:\Netcdf\test\ori\1987\%%g) do (

echo %%h > temp.tmp
sort temp.tmp /o temp2.tmp

set /p fichier=<temp2.tmp
set /a fichier_1=%fichier:~0,8%

del /q temp.tmp
del /q temp2.tmp
cls

echo ## %fichier_1%
)
)


A l'exécution de ce code il me renvoi uniquement le nom du 1er fichier pour le mois de juillet alors qu'il me faut :
07 : nb fichiers et nom du 1er fichier
08 : nb fichiers et nom du 1er fichier
09 : nb fichiers et nom du 1er fichier

Je vous sollicite donc encore pour me venir en aide !!! Merci



Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Pour concaténer 2 fichiers on peut faire
Code:

for /f %%A in ('type fichier1.txt') do echo %%A >> fichier2.txt


Pour ton problème, je vois que dans le code tu utilise des variables normalement, mais dans une boucle for, on ne peut pas utiliser les variables comme ça!
Met ça en début de code
Code:

setlocal ENABLEDELAYEDEXPANSION ENABLEEXTENSIONS


et dans for les variables s'utilisent comme ça: !var! -> les % sont remplacés par des !, mais pas les variables de for, qui restent %%A (ne vas pas me faire !!A ^^)
exemple:
Code:

set /a A=!A!+!B!

set C=!var:~0,1!

echo !A!

etc....

Si ça marche pas c'est qu'il y a une autre erreur Okay




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
c'est tout de suite mieux ! çà marche pécab Razz



Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Ok ^^
Si c'est résolu, édite ton topic et met [Résolu] devant le titre Okay




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [Resolu] Non du 1er fichier dans un dossier 
Et poste le code source final Wink ça pourra aider des autres personnes Razz




______________________________________________________
Visiter le site web du posteur
Message [Resolu] Non du 1er fichier dans un dossier 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch