Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
[Réglé] demande adaptation de script
Auteur Message
Répondre en citant
Message [Réglé] demande adaptation de script 
Bonjour all,


code trouvé sur la toile que j'ai adapté à mes besoins seulement il ne fonctionne que sur XP après l'avoir fait testé sous Win7. Vista non testé mais je pense que Vista utilise également defrag /A et XP defrag -a...

Sous Win7, même en mettant defrag /A, les valeurs sont null :s

Code :
Voir plus bas...

Je vous remercie d'avance pour votre aide. Si toutefois, le sujet n'est pas au bon endroit, je m'en excuse ne sachant pas trop où le mettre...

Cordialement



Dernière édition par Owned le Lun 26 Mar 2012 - 14:20; édité 5 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Réglé] demande adaptation de script 
Je n'ai pas Seven ni Vista ...
Donc la commande defrag /A fonctionnerait sous 7 ??
Sinon, il suffit juste de tester l'OS et de placer une condition de ce style
Code:

:: ...
if %EXPLOIT%==XP (
    set DEFRAG=-A
  ) else (
    set DEFRAG=/A
    )
:: ....
defrag %DEFRAG%
:: ...

Pour la détection de l'OS:
Code:

@echo off

ver | find /i "7" > nul
 if %errorlevel%==0 set EXPLOIT=Windows 7

ver | find /i "vista" > nul
 if %errorlevel%==0 set EXPLOIT=Windows Vista

ver | find /i "xp" > nul
 if %errorlevel%==0 set EXPLOIT=Windows XP

ver | find /i "NT" > nul
 if %errorlevel%==0 set EXPLOIT=Windows NT

ver | find /i "2000" > nul
 if %errorlevel%==0 set EXPLOIT=Windows 2000

ver | find /i "ME" > nul
 if %errorlevel%==0 set EXPLOIT=Windows ME

ver | find /i "98" > nul
 if %errorlevel%==0 set EXPLOIT=Windows 98

ver | find /i "95" > nul
 if %errorlevel%==0 set EXPLOIT=Windows 95
 
echo %EXPLOIT%
pause>nul





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Réglé] demande adaptation de script 
Bonjour stryk,

la détection du système ne me pose pas problème.


Je n'ai plus Win7 pour le moment...

J'ai modifié le script en indiquant defrag /A lancé en administrateur et le batch ne répond pas comme sous XP...

Je vais essayer de lui demander une capture d'écran sous Win7.

En voici sous XP :



edit: sous Win7 X64 :


Le même code utilisé sauf cette ligne
 
Code:
for /f "tokens=1,4 delims= " %%a in ('defrag -a %systemdrive%^|find /i "total"') do (  
modifié en :

 
Code:
 for /f "tokens=1,4 delims= " %%a in ('defrag /A %systemdrive%^|find /i "total"') do (




Répondre en citant
Message [Réglé] demande adaptation de script 
LOL, division par 0 ...

Essayes en placant des "echo" partout pour voir ce que te retourne la commande
(quand tu auras un Seven sous la main ...)




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Réglé] demande adaptation de script 
erreur de division par zéro est égale  à :

 
Code:

 set /a sgbfprct=(%sgbf%*100)/%sgbt% +1

inutile de placer des echo ^^ Normal vu que l'espace disque n'est pas détecté comme on le voit dans la capture d'écran...


Je lui ai demandé de m'envoyer les logs concernant l'aide de defrag sous 7
defrag /? sous Win7 :

http://www.sendspace.com/file/fpnuh4



Répondre en citant
Message [Réglé] demande adaptation de script 
Oui j'imagine pour la division Mr. Green

Je te disais de placer des "echo" pour pouvoir mettre en forme la boucle FOR suivant ce que te renvoie seven ...




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Réglé] demande adaptation de script 
On voit sur le screen ce que renvois la boucle for, je ne vois ce que tu cherche ou alors explique toi mieux car là j'ai du mal à te suivre...

La taille totale du disque est remplacé par :        Quantité

l'espace restant par : fragmenté

donc après logique que tout foire Very Happy Sad

J'ai installé une machine virtuel exprès et j'obtiens pareil sous 7 et Win 2008 RC2.... (Windows 2008 RC2 utilise defrag -a comme XP) donc le code trouvé sur la toile pose problème selon l'OS...

fsutils est bien mais il est pas assez précis....

edit: j'ai testé avec le pack cmdutils (df.exe) et pareil le résultat est trop éloigné de la réalité et pareil en utilisant WMI...

La seule méthode trouvé ne fonctionnerait que sous XP, la blague Sad Very Happy



Répondre en citant
Message [Réglé] demande adaptation de script 
Dans la logique, il n'est pas utile de défragmeter un disque sous win 7 ce qui n'est pas le cas sous win xp.

voici la syntaxe de la commande defrag sous win 7
Citation:

D‚fragmenteur de disque Microsoft
Copyright (c) 2007 Microsoft Corp.

Descriptionÿ:

recherche et regroupe les fichiers fragment‚s sur les volumes locaux pour
am‚liorer les performances du systŠme.

Syntaxeÿ:

defrag <volumes> | /C | /E <volumes> [/H] [/M | [/U] [/V]]
defrag <volumes> | /C | /E <volumes> /A [/H] [/M | [/U] [/V]]
defrag <volumes> | /C | /E <volumes> /X [/H] [/M | [/U] [/V]]
defrag <volume> /T [/H] [/U] [/V]

ParamŠtresÿ:

Valeur Description

/A Effectue une analyse sur les volumes sp‚cifi‚s.

/C Effectue l'op‚ration sur tous les volumes.

/E Effectue l'op‚ration sur tous les volumes sauf ceux sp‚cifi‚s.

/H Ex‚cute l'op‚ration … priorit‚ normale (faible est choisi par d‚faut).

/M Ex‚cute l'op‚ration sur chaque volume en parallŠle en arriŠre-plan.

/T Assure le suivi d'une op‚ration d‚j… en cours sur le volume sp‚cifi‚.

/U Affiche l'avancement de l'op‚ration … l'‚cran.

/V Affiche une sortie d‚taill‚e contenant les statistiques de fragmentation.

/X Effectue la consolidation de l'espace libre sur les volumes sp‚cifi‚s.

Exemplesÿ:

defrag C: /U /V
defrag C: D: /M
defrag C:\mountpoint /A /U
defrag /C /H /V






______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Réglé] demande adaptation de script 
ah, je ne savais pas donc ce que je souhaite tombe aux oubliettes ? mouarfffff dommage...

ou connaissez vous un logiciel qui serait fiable en ligne de commande ?

J'en ai déjà testé quelques un mais ils ne sont pas précis...



Répondre en citant
Message [Réglé] demande adaptation de script 
Quel logiciel pour faire quoi ? merci d'être précis.

C'est quoi le but de ton script ? connaitre l'espace disque libre ? pourquoi ne pas passé par vbs ?




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Réglé] demande adaptation de script 
Un logiciel utilisable en ligne de commande pour générer l'espace disque totale et restant du disque C:\.

Le but du script n'a aucun rapport avec ma demande, c'est juste que j'aime faire les choses correctement donc j'inclus des vérifications avant que l'utilisateur puisse utiliser le script.

car je ne connais pas ce langage... j'ai assez pris de doliprane pour le batch en ce moment Very Happy et si tu parle de VBS et WMI, le résultat est loin d'être précis...

edit 16h35 :


Problème réglé Smile

Selon l'OS, on génère un .txt :

 
Code:



defrag C:\ /A >> %systemdrive%\defrag.txt 




puis ensuite on recherche les informations nécessaires...


 
Code:



 :supportedvista
 echo Lancement de la defrag pour generer le rapport en .txt
 defrag C:\ -a >> %systemdrive%\defragvista.txt
 pause
 call :checkhddvista
 
 :checkhddvista
 for /f "tokens=4*" %%A in ('type "%systemdrive%\defragvista.txt" ^| Find "Taille du volume"') do ( 
     set tailletotale=%%~B
     set tailletotale=!tailletotale:~0,3%!
     )
 
 for /f "tokens=3*" %%A in ('type "%systemdrive%\defragvista.txt" ^| Find "Espace"') do ( 
     set tailledispo=%%B
     set tailledispo=!tailledispo:~0,2%!
     )
 echo.
 goto freehddvista




par contre une question me tracasse : Si le HDD fait plus de 999 Go, mon code sera faux ? N'ayant pas de HDD supérieur à 500 Go, difficile de tester...


Par contre Laddy :

 
Citation:


 Dans la logique, il n'est pas utile de défragmeter un disque sous win 7



je ne doute pas sur tes compétences mais c'est le seul moyen que j'ai et qui me paraît fiable pour récupérer les informations désirées...

Sinon Laddy, petite question, voici un log de defrag sous Win7 :

 
Citation:

 Taille du volume                 = 100,65 Go
Espace libre                  = 50,80 Go
Quantit‚ totale d'espace fragment‚      = 2%
Taille maximale d'espace libre     = 39,41 Go

Taille maximale d'espace libre correspond à l'espace libre après déduction du % nécessaire au bon fonctionnement du système (Defrag, Restauration système etc...) ?


Cordialement


edit 23h26 : j'annule la demande, je me prend trop la tête si l'espace disque est varie avec tokens=1,5 delims= , tanpis je me passerais de ce détails.



Répondre en citant
Message [Réglé] demande adaptation de script 
Un disque dur n'est pas égal exactement au go noté dessus
Darkbatcher ou stryk l'ont expliqué quelque part.
500 Go donne beaucoup moins si tu regardes au moment de l installation de ton systeme

pour ta question aucune idée je n ai pas regardé comment il fonctionne.




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Réglé] demande adaptation de script 
Je sais très bien cela Laddy, moi je te parle du résultat avec Wmi et defrag sont vraiment trop différent (+10 Go d'écart...)

Citation:

 Taille maximale d'espace libre


concerne bien ce que j'ai dit. Wink







Répondre en citant
Message [Réglé] demande adaptation de script 
10 go ??? vraiment bizzare car j obtiens un tres bon résultat de mon coté




______________________________________________________
Faites paraitre votre batch sur BatchClipboard
Visiter le site web du posteur
Répondre en citant
Message [Réglé] demande adaptation de script 
Bah ce sont des scripts trouvés sur la toile donc après fiable ou non ?



Message [Réglé] demande adaptation de script 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 2
Aller à la page: 1, 2  >
  



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