Page 1 sur 1

Commande "négation" ms-dos (cmd.exe)

Posté : 11 sept. 2009 23:46
par tdm
Bonjour,

Je fais actuellement un DUT informatique (semestre 1), et aujourd'hui on a vu le ms-dos.

Seulement, il y avait une question "comment supprimer tous les fichiers qui n'ont pas l'extension .java".
Je suis allez voir l'aide de la commande "del" en faisait "del /?", et je vois qu'il existe un attribut négation "-" qui serai parfait. Le problème, c'est que je n'ai pas trouvé comment le faire marcher, et le prof m'a dit qu'il a jamais réussi lui non plus. Il m'a donc conseiller de faire un "dir /s" (pas mal de sous dossiers) et de regarder toutes les extensions existantes afin de les supprimer une par une.

Seulement, si cette fonction négation existe, c'est quelle doit pouvoir être utilisé ! Alors, comment faut-il taper cette commande ???

Ce que j'ai essayer, et qui ne marche pas :
- "del -*.java /s /q"
- "del -(*.java) /s /q"
- "del - *.java / /q" (celui là n'indique pas de message d'erreur, mais il supprime le .java --')

Ce que j'ai fait chez moi :
je mis suis mis à la racine, c:\

Code : Tout sélectionner

mkdir test
cd test
echo > test.jpeg
echo > test.java
echo > test.cpp
 
à partir de là je teste cette commande "-", mais soit j'ai un message d'erreur, soit c'est le .java qui est supprimé...

merci d'avance

PS : ce que donne l'aide de la fonction del : http://www.batcher.fr/cmd/del.php
la négation à la dernière ligne de l'avant dernier paragraphe.



EDIT :
Je pense avoir bien avancé. J'ai remarque que l'attibut négation était justement un attribut, et que les attributs s'écrivent comme ça : "DEL [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms".
Le problème, c'est que tout ce qui est optionnel est mis entre crochets, et que je n'arrive pas à comprendre comment écrire les attributs, j'ai à chaque fois une erreur de syntaxe...

Re: Commande "négation" ms-dos (cmd.exe)

Posté : 13 sept. 2009 11:42
par Devatoria
Salut.

En fait, il semblerait (à ce que j'ai compris), que le préfixe de négation de la commande del ne s'applique qu'aux attributs.

Code : Tout sélectionner

Supprime un ou plusieurs fichiers.

DEL [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms
ERASE [/P] [/F] [/S] [/Q] [/A[[:]attributs]] noms

  noms          Sp‚cifie une liste d'un ou plusieurs fichiers ou r‚pertoires.
                Les caractŠres g‚n‚riques peuvent ˆtre utilis‚s pour
                supprimer plusieurs fichiers. Si un r‚pertoire est sp‚cifi‚,
                tous les fichiers qu'il contient seront supprim‚s.

  /P            Demande une confirmation avant de supprimer un fichier.
  /F            Force la suppression de fichiers en lecture seule.
  /S            Supprime les fichiers dans tous les sous-r‚pertoires.
  /Q            Pas de confirmation avant suppression avec car. g‚n‚riques.
  /A            Suppression en fonction des attributs
  attributs     R  Fichiers en lecture seule     S  Fichiers systŠme
                H  Fichiers cach‚s               A  Fichiers prˆts pour archive
                I  Fichiers index‚s sans contenu L  Points d'analyse
                -  Pr‚fixe de n‚gation

Si les extensions de commandes sont activ‚es, DEL et ERASE sont modifi‚es
comme suit :
La logique d'affichage du commutateur /S est invers‚e. Elle
n'affiche que les fichiers supprim‚s, et pas ceux qui n'ont pas ‚t‚ trouv‚s.
 
Ex. : del /Q /A:-H *.*

Cette commande sert à supprimer tous les fichiers d'un répertoire sans demande de confirmation, tous les fichiers SAUF les fichiers cachés. Voilà, j'espère t'avoir aidé à comprendre cet attribut.

P.S : del /Q /A:H *.* permet de supprimer tous les fichiers cachés ;)

Bye.

Re: Commande "négation" ms-dos (cmd.exe)

Posté : 13 sept. 2009 12:29
par tdm
merci beaucoup Devatoria, effectivement c'est bien ça, le préfixe de négation ne va pas tout seul.
Dans mon cas, je fais donc :

Code : Tout sélectionner

attrib +R *.java /s
del /A-R *.* /s /q
 
J'attribue aux fichiers que je veux l'attribut R, et après je supprime tout sauf ceux là.

merci encore

Re: Commande "négation" ms-dos (cmd.exe)

Posté : 13 sept. 2009 16:52
par Devatoria
Derien ;)

Bonne continuation.