Commande Find dans DOS

Fermé
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016 - Modifié par NkRedoxx le 13/06/2016 à 16:38
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016 - 14 juin 2016 à 16:44
Bonjour j'ai un petit problème lorsque que lance une recherche find sur mon disque D j'aimerais récupérer une ligne ou il y a inscrit octets mais le problème est qu'il y en a plusieurs. Est-ce que je peux recuperer une ligne spécifique ? Il y a environ une dizaine de résultat et je souhaiterais récupérer juste l'avant dernière ligne ! merci d'avance

dir d:\zinfo /s | find "octets">>d:\script\VolumeDisqueG.txt

1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
Modifié par dubcek le 14/06/2016 à 08:16
hello
on récupère la dernière ligne que se termine par octets
C:> dir /s | find "octets"
26 fichier(s) 2 455 197 octets
31 fichier(s) 3 537 393 octets
23 fichier(s) 19 451 904 octets
7 fichier(s) 16 319 octets
0 fichier(s) 0 octets
87 fichier(s) 25 460 813 octets
14 Rép(s) 94 462 062 592 octets libres

C:> for /F "delims=" %a in ('dir /s ^| findstr "octets$" ') do @set o=%a
C:> echo %o%
87 fichier(s) 25 460 813 octets
0
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016
Modifié par NkRedoxx le 14/06/2016 à 09:33
Okay d'accord merci ! et si jamais j'aimerais faire ceci (zinfo est un nom de dossier):
dir:\zinfo /s 

Dans ce cas j'aimerais récupérer l'avant dernière ligne est ce possible ? Avec ton code j'ai une erreur :

C:\WINDOWS\system32>for /F "delims=" %a in ('dir /s ^| findstr "octets$" ') do @
set o=%a

C:\WINDOWS\system32>%o%
'18134' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes.


Merci, Cordialement
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
14 juin 2016 à 09:39
il manque echo
for /F "delims=" %a in ('dir /s \zinfo /s ^| findstr "octets$" ') do @set o=%a
echo %o%
0
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016
14 juin 2016 à 09:45
Ah oui je n'avais pas vu escusez moi !
ça fonctionne nickel je vous remercie pour votre aide et vous souhaite une bonne et agréable journée
Cordialement,
0
NkRedoxx Messages postés 63 Date d'inscription mercredi 8 juin 2016 Statut Membre Dernière intervention 20 juin 2016
Modifié par NkRedoxx le 14/06/2016 à 10:29
Est-ce que vous seriez pourquoi j'ai un message d'erreur lorsque je fais ce script :

rem @echo off

echo.>>d:\script\VolumeDisqueG.xls
echo Le %date% a %time% :>>d:\script\VolumeDisqueG.xls
chkdsk d: | find "Ko disponibles">>d:\script\VolumeDisqueG.xls
dir d:\zinfo /s 
for /F "delims=" %a in ('dir /s d:\zinfo /s ^| findstr "octets$" ') do @set o=%a 
echo "%o%">>d:\script\VolumeDisqueG.txt




Voici mon erreur a partir de la ligne
dir d:\zinfo /s



C:\WINDOWS\system32>dir d:\zinfo /s
............
\zinfo était inattendu.

C:\WINDOWS\system32>for /F "delims=" \zinfo /s ^| findstr "octets$" ') do @set o
=a


Cordialement,
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
14 juin 2016 à 10:30
interactivement, on utilise %a, dans un .bat, il faut utiliser double %
for /F "delims=" %%a in ('dir /s d:\zinfo /s ^| findstr "octets$" ') do @set o=%%a 
0