Batch - Obtenir le poids d'un fichier avec la commande ForFile.exe - Shell/Batch - Programmation
Marsh Posté le 06-08-2006 à 00:37:30
je veux pas faire mon chieur, mais c'est 2 lignes en python :
Code :
|
Marsh Posté le 06-08-2006 à 01:02:08
Merci beaucoup
Mais cette foi si im me faut absolument un script batch, c'est pour completter un script batch que je cherche le poid du fichier, et je n'ai pas envi de refaire mon script en python.
Marsh Posté le 06-08-2006 à 01:04:32
ReplyMarsh Posté le 06-08-2006 à 01:32:11
ReplyMarsh Posté le 06-08-2006 à 08:37:28
webding a écrit : En plus je n'arrive toujours pas à exécuter les script python |
Ben évidemment. Il te faut d'abord installer Python pour pouvoir exécuter des scripts python...
webding a écrit : |
Ben oui, ce n'est pas du batch...
Bon, je connais pas le batch (suis spécialisé dans unix). Mais en faisant "dir fichier" j'obtiens les infos de mon fichier dont la taille. Peut-être peux-tu extraire de ces infos juste ce qui t'intéresse...
Marsh Posté le 06-08-2006 à 11:23:29
webding a écrit : import os |
je sais pas si tu as saisi le principe de Python... avec Python, tu as IDLE qui est livré, dans lequel tu peux exécuter des instructions ligne à ligne. donc tu lances IDLE, puis tu tapes les 2 lignes que je t'ai donné, en appuyant sur entrée entre chaque ligne. regarde :
ça c'est le mode immédiat : tu tapes tes commandes, et tu as le résultat directement à l'écran.
pour exécuter des scripts, il faut les lancer depuis une fenetre dos par la commande python, en ayant préalablement vérifié qu'elle existe bien dans ton PATH. ensuite c'est tout con : pour lancer le script test.py, alors tu tapes :
C:\>python test.py
et c'est tout !
Marsh Posté le 06-08-2006 à 11:24:29
Sve@r a écrit : |
non non surtout pas, j'essaie de lui faire comprendre qu'utiliser le batch en 2006 alors qu'il existe des merveilles comme python ou autres c'est complètement has been
Marsh Posté le 06-08-2006 à 15:04:54
S'ayet, les sryptes python s'exécutes.
Mais comme je l'ai dit, cette foi si im me faut absolument un script batch, c'est pour completter un script batch que je cherche le poid du fichier, et je n'ai pas envi de refaire mon script en python.
Marsh Posté le 06-08-2006 à 15:12:09
Sve@r a écrit : Bon, je connais pas le batch (suis spécialisé dans unix). Mais en faisant "dir fichier" j'obtiens les infos de mon fichier dont la taille. Peut-être peux-tu extraire de ces infos juste ce qui t'intéresse... |
Ben j'ai fait cette boucle mais je n'arrive pas à récupérer le poids du fichier:
For /f "skip=5 tokens=3 delims= " %%i In ('Dir /os /s') Do echo %%i
Marsh Posté le 06-08-2006 à 17:49:28
webding a écrit : Ben j'ai fait cette boucle mais je n'arrive pas à récupérer le poids du fichier: |
echo %%~zi
Marsh Posté le 06-08-2006 à 17:53:52
OK, merci beaucoup
Donc:
for /r "\" %%i in (*.*) do echo %%~zi
Marsh Posté le 06-08-2006 à 19:06:58
J'ai essayer ceci pour les répertoire:
for /f "delims=" %%i in ('dir /a:d /b /s %1') do echo %%~zi
Mais cela ne fonctionne pas, ça affiche 0 même pour les répertoire qui pésent lourds.
J'aurais voulu essayer sans le dire, avec for /r plutôt que for /f, mais j'ai un souci: http://forum.hardware.fr/hardwaref [...] 4728-1.htm
Marsh Posté le 06-08-2006 à 19:53:17
OK, donc maintenant que le problème du point est résolu, voici où j'en suis pour le poids des répertoires:
for /r "%~1\" %%i in (.) do if "%%~zi"=="0" echo %%~zi
Mais cela ne fonctionne toujours pas corectement, même les répertoire qui pésent plus de 0 octet sont affihcher à 0
Marsh Posté le 06-08-2006 à 19:56:38
Marsh Posté le 06-08-2006 à 20:43:32
Alors n'y a-t-il pas moyen de tester le poids d'un répertoire ?
Marsh Posté le 06-08-2006 à 20:47:12
bah écoute, j'ai passé mon wk end à te faire comprendre que le batch n'est pas fait pour ce genre de truc, je t'ai orienté vers python car c'est bien plus adapté à ton cas, mais tu n'en as cure
quand je vois la gueule des solutions qu'on te propose en batch, je me dis que ce truc est décidément mort, et fait partie d'un passé qui j'espère ne refera jamais surface (quoiqu'on en a quelques réminiscences avec PERL et les shell linux, mais passons)
Marsh Posté le 06-08-2006 à 20:50:29
Merci pour m'avoir fait découvror la pytho, il me serat surement utilie, par exemple pour créer une barre d'outils dans la barrre des tâche, mais cette foi si im me faut absolument un script batch, c'est pour completter un script batch que j'ai déjà comancer qui est bien long, et que je ne veux pas tous refaire en python que je cherche le poid du fichier, et je n'ai pas envi de refaire mon script en python
Marsh Posté le 06-08-2006 à 20:56:26
Ut ta de chose, il test des répertoires dans programme files pour savoir si des applications sont installés ou pas si non il les installer, il teste des clé dans le registre, il teste les tâches planifié, il sauvegardes des fichiers, ect ...
Marsh Posté le 06-08-2006 à 21:15:40
En batch je ne peux pas dire, mais en VBScript (compris en natif par windows) :
Dim fileObject, file |
(petit lien : http://www.asp-fr.net/vbscript )
Encore une fois, le batch est mort.
Je pense que tu mettras moins de temps à convertir ton script à un autre langage, qui sera bien plus pratique et puissant que le batch, et plus lisible.
Sauf si, bien sûr, ton .BAT pèse quelques centaines de lignes avec plein de goto dans tous les sens. J'ai déjà vu ça une ou deux fois dans ma vie, et dans ce cas il ne me reste plus qu'à te présenter mes condoléances.
Marsh Posté le 06-08-2006 à 21:20:32
Elmoricq a écrit : En batch je ne peux pas dire, mais en VBScript (compris en natif par windows) :
|
Merci beaucoup
En effet mon batch principale fait plus de 4000 lignes, enorme, et encore j'ai minimisé les commentaires, et les scripts ne sont pas très espacern les sauts de lignes je conait pas dans mon batch.
Cepandant, je peut ajouter qun même quelques vbs pour se que je ne peut pas faire en batchs.
Marsh Posté le 06-08-2006 à 21:26:26
webding a écrit : Merci beaucoup |
En VBS je pense que le programme ne ferait pas plus de 1000 lignes (borne haute), en factorisant le code redondant en fonctions et sous-programmes.
Marsh Posté le 06-08-2006 à 21:38:17
webding a écrit : |
j'ai une meilleure idée : que dirais tu de virer tout le batch et de ne garder que le vbs ?
Marsh Posté le 06-08-2006 à 21:43:15
Marsh Posté le 06-08-2006 à 21:47:56
Je ne pense pas que tu ais asser de temps à m'accorder spécialement à moi, pour tout refaire.
Marsh Posté le 06-08-2006 à 21:49:19
Pour l'instant je prend ça:
Code :
|
Je fairai un echo > fichier.txt dans mon batch, mais je suis sur que l'on peut tester le pids d'un dosier en dos, c'est quand même pas un action complexe ça.
Marsh Posté le 06-08-2006 à 21:54:28
ben ouai, mais le batch comme son nom l'indique c'est à la base fait pour enchainer des traitements par lot (batch). Ca a un peu évolué ensuite mais au départ, il n'y avait même pas de boucle for (sic !)
Marsh Posté le 01-08-2007 à 16:30:45
Bonjour.
J'essaye de récupérer la taille du profil de l'utilisateur connecté mais ça ne fonctionne pas, quelqu'un aurai une idée ??
Voivi le code tel qu'il est pour le moment :
Dim fileObject, file
Set WshShell = WScript.CreateObject("WScript.Shell" )
Set WshSysEnv = WshShell.Environment("SYSTEM" )
Set UserProfile = WshSysEnv("USERPROFILE" )
Set fileObject = CreateObject("Scripting.FileSystemObject" )
Set file = fileObject.GetFolder("UserProfile" )
MsgBox file.name & " - " & file.size & "octets."
Merci d'avance
Marsh Posté le 01-08-2007 à 16:48:21
C'est une idée mais je trouvai que la question suivai bien la réflexion de ce topic ci.
Mais bon, tu as raison je vais en créer un nouveau.
Marsh Posté le 02-08-2007 à 16:14:21
Harkonnen a écrit : bah écoute, j'ai passé mon wk end à te faire comprendre que le batch n'est pas fait pour ce genre de truc, je t'ai orienté vers python car c'est bien plus adapté à ton cas, mais tu n'en as cure |
rho le vilain troll gouflu, mais pourquoi je réponds ne jette pas la pierre aux shells unix et à perl, c'est grace à eux que python existe. Pour des scripts aussi simple y'aura quasi _aucune_ diff de syntaxe entre perl et python.
sinon +1 comment est ce possible de faire encore de l'admin avec du batch :|
Marsh Posté le 27-08-2007 à 17:31:22
bah des fois, tes batchs font des milliers de lignes et t'as ni le temps ni le budget et donc bon tu fais avec
Marsh Posté le 27-08-2007 à 17:37:48
Ce qu'il y a de bien avec le batch c qu'on peut faire ca en une seule ligne
Marsh Posté le 19-09-2007 à 05:36:26
Salut un "dir /S" te renvoie le nombre de fichiers contenus dans un repertoire ainsi que la taille du repertoire en octets sur l'avant derniere ligne
@++
Marsh Posté le 06-08-2006 à 00:29:39
Bonjour, quelqu'un saurait-il me donné la syntaxe pour obtenir le poids d'un fichier avec la commande ForFile.exe ?