Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2270 connectés 

 


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]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


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_

Citation :

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 !


 
 :D

_probleme_

Citation :

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 !


 
 :D

_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 :
 

Code :
  1. -> FICHIER suppr.bat
  2. @echo off
  3. for %%a in (*.*) do call dosuppr.bat %%a
  4. -> FICHIER dosuppr.bat
  5. if "%1"=="suppr.bat" goto fin
  6. if "%1"=="dosuppr.bat" goto fin
  7. if "%1"=="Fichier_A_Ne_Pas_Supprimer.fic" goto fin
  8. ...
  9. del %1
  10. :fin

_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) ??

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)