| |||||
| Dernière réponse | |
|---|---|
| Sujet : [batch] sauf | |
| Mara's dad | Y'en a qu'ont un _probleme_ ;) [edtdd]--Message édité par Mara's dad--[/edtdd] |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| Mara's dad | Y'en a qu'ont un _probleme_ ;) [edtdd]--Message édité par Mara's dad--[/edtdd] |
| _probleme_ | pour voir si c'est reellement possible |
| Mara's dad | Pour QUOI faire ? ? ? |
| _probleme_ | j'avais entendu dire qu'on pouvait le faire et je voulais savoir si c'etait reellement possible |
| Mara's dad | Si tu connais PKZIP...
Au lieu de taper les commandes, tu les met dans un batch, c'est tout ! Sinon, pour augmenter la taille d'un fichier, là je vois pas ! Un fichier, çà contient un certain nombre d'uinité d'information élémentaire (Pour un fichier, l'unité est l'octet, pour simplifier). Augmenter la taille du fichier, çà veut dire ajouter de l'information. Maintenant, si tu explique pourquoi tu veut faire çà, peut-être qu'on pourrait imaginer une solution... |
| _probleme_ | y'a pas moyen de modifier la taille sans coller 2 fichiers ensemble ??
pour le zip,..... je connaissais deja, je voulais juste savoir s'il y avait moyen de le faire en batch |
| Mara's dad | Je vois pas trop l'intéret à augmenter la taille d'un fichier, mais bon, si tu y tiens !
Par exemple : si le fichier a.txt fait 2Mo et le fichier b.txt fait 1Mo, "copy a.txt + b.txt c.txt" va créer un fichier c.txt faisant 3Mo et contenant a.txt et b.txt. L'opération inverse ne pourra pas être faite en batch ! Sinon, pour réduire la taille d'un fichier, il faut soit enlever une partie des informations qu'il contient, soit le compresser avec des outils genre PKZIP, RAR, ARJ... Remarque : Ces outils sont en général capable de découper le résultat final en plusieurs fichiers, plus petits donc, mais aussi plus nombreux ! C'est pourquoi que tu veux AUGMENTER la taille d'un fichier ? ? ? |
| _probleme_ | idem
tu saurais pas comment modifier la taille d'un fichier en batch, du genre faire prendre 3 Mo a un fichier n'en occupant que 2 ?? est-il ainsi possible de faire la manip inverse : faire prndre moins de place a un fichier ?? |
| Mara's dad | Zarbi !
Chez moi (avec NT4.0) çà marche ! Essaye comme çà pour voir : attrib +H +R "nom@sqlforum[?].txt" |
| _probleme_ | ca me met ca, mais ca marche :sarcastic: :crazy: |
| _probleme_ | "valeur de parametre non permise - ?].txt" |
| Mara's dad | Une solution plus simple :
1 - Renomer les fichiers qu'on veux garder ou les protéger en écriture et/ou les cacher ! 2 - supprimer les .txt 3 - Faire l'inverse de 1. Exemple avec les permissions : cd c:\windows\cookies attrib +H +R nom@sqlforum[?].txt del *.txt attrib -H -R nom@sqlforum[?].txt Remarque, j'ai mis ? à la place de 1, car chez moi, j'ai remarqué qu'il y avais sqlforum[1].txt et sqlforum[2].txt. |
| _probleme_ |
|
| _probleme_ |
|
| _probleme_ | :sleep: :sleep: :sleep: :sleep: :sleep: :sleep: :sleep: j'essaye de comprendre et je reviens ;) tu pourrais me montrer comment faire un prog qui del tous les .txt de c:\windows\cookies, SAUF sans nom@sqlforum[1].txt (cookies de hfr) ?? merci. |
| Mara's dad | Tu crée 2 fichier batch suppr.bat et do suppr.bat
Dans mon exemple : "-> FICHIER suppr.bat" c'était juste pour indiquer le nom du fichier, faut pas mettre çà dedans, c'est pas des commandes batch ! Le fichier suppr.bat : @echo off for %%a in (*.*) do call dosuppr.bat %%a Le @echo off, c'est pour que les commandes ne s'affichent pas à l'écran le for %%a in ..., c'est une boucle qui va donner à %a les valeurs successives de ce qu'il y a dans entre parenthèse. Ce peut être une énumération : (a, b, c, d, toto, slurp) ou comme dans notre cas, un chemin et une spécification de fichier. J'avais mis *.* ce qui veut dire tous les fichiers, quel que soit leur noms et leur extention, dans le répertoire courrant. Si tu essaye par exemple de taper directement sur la ligne de commande : for %a in (c:\windows\*.ini) do @echo %a Il t'affiche la liste des fichier *.ini de windows. C'est un moyen plus compliqué de faire une DIR ;) Remarque : Dans un fichier batch, il faut utiliser %%a et pas %a comme nom de variable dans une boucle for... donc pour chaque fichier de (*.*), la boucle execute la commande située après le do. Dans notre cas, on appelle (call) un fichier batch (dosuppr.bat) avec un paramètre qui est %%a, donc le nom de notre fichier à traiter. Le fichier dosuppr.bat if "%1"=="suppr.bat" goto fin if "%1"=="dosuppr.bat" goto fin if "%1"=="Fichier_A_Ne_Pas_Supprimer.fic" goto fin ... del %1 :fin si un fichier batch recois des paramètres, ils s'appellent %1, %2, %3 ... %9 Dans notre cas, un seul paramètre donc %1 Ensuite, on vérifie que le fichier doit bien être traité. if "%1"=="suppr.bat" goto fin Si %1 est un nom de fichier qu'on ne veut pas supprimer, on va à la fin, (:fin) Enfin, on supprime le fichier ! del %1 ------------- Maintenant, si tu veut pouvoir utiliser cette procédure en lui indiquant un chemin, il faut l'adapter : Le fichier suppr.bat : @echo off for %%a in (%1\*.*) do call dosuppr.bat %%a Là, il faut utiliser suppr.bat de la manière suivante : suppr c:\temp Attention, si tu utilise suppr sans paramètre, le traitement se fera sur la racine \ du disque courrant ! Pour faire des test, je te conseil faire çà : Dans suppr.bat, met en premiere ligne: del c:\testsuppr.txt et dans dosuppr.bat @echo del %1 >> c:\testsuppr.txt à la place de del %1 Cela va te générer un fichier c:\testsuppr.txt qui contiendra la liste des DEL à faire. Il te suffit de le lire pour vérifier que la procédure ne supprime rien d'important. Tu peut aussi renomer ce ficher en .bat et le lancer pour qu'il fasse les supressions... OK ? [edtdd]--Message édité par Mara's dad--[/edtdd] |
| _probleme_ | tu pourrais detailler, stp (a quoi servent les commandes)
ca me met "commande ou nom de fichier incorrect" si je veux supprimer des fichiers qui ne sont pas dans le repertoire de ce prog, ou est*ce*que je mets les adresses des fichiers ?? |
| Mara's dad | Une solution qui marche avec 2 fichiers batch :
|
| _probleme_ | est-il possible d'inclure dans un programme en batch la notion "sauf" : supprimer tous les fichiers d'un repertoire, SAUF un (ou plusieurs) ?? |




