web-dev-qa-db-fra.com

Supprimer les messages d'erreur dans la ligne de commande Windows

Disons que j'ai déjà un dossier créé sur le fichier de chemin suivant: "C:\users\charqus\desktop\MyFolder", et j'exécute la commande suivante sur CMD:

mkdir "C:\users\charqus\desktop\MyFolder"

J'obtiens un message comme celui-ci: "Un sous-répertoire ou fichier C:\users\charqus\desktop\MyFolder existe déjà".

Par conséquent, existe-t-il une commande dans la ligne de commande pour se débarrasser de ces messages renvoyés? J'ai essayé l'écho, mais ce n'est pas ce que je recherche.

13
charqus

Redirige la sortie vers nul

mkdir "C:\users\charqus\desktop\MyFolder" > nul

Selon la commande, vous devrez peut-être également rediriger les erreurs:

mkdir "C:\users\charqus\desktop\MyFolder" > nul 2> nul

Microsoft décrit les options ici , ce qui est une lecture utile.

32
Roger Rowland

Une réponse précédente montre comment écraser toute la sortie de la commande. Cela supprime le texte d'erreur utile qui s'affiche si la commande échoue. Un meilleur moyen est illustré dans l'exemple suivant:

C:\test>dir
     Volume in drive C has no label.
     Volume Serial Number is 4E99-B781

     Directory of C:\test

    20/08/2015  20:18    <DIR>          .
    20/08/2015  20:18    <DIR>          ..
                   0 File(s)              0 bytes
                   2 Dir(s)  214,655,188,992 bytes free

C:\test>dir new_dir >nul 2>nul || mkdir new_dir >nul 2>nul || mkdir new_dir

C:\test>dir new_dir >nul 2>nul || mkdir new_dir >nul 2>nul || mkdir new_dir

Comme démontré ci-dessus, cette commande a réussi à supprimer l'avertissement d'origine. Cependant, si le répertoire ne peut pas être créé, comme dans l'exemple suivant:

C:\test>icacls c:\test /deny "Authenticated Users":(GA)
processed file: c:\test
Successfully processed 1 files; Failed processing 0 files

C:\test>dir new_dir2 >nul 2>nul || mkdir new_dir2 >nul 2>nul || mkdir new_dir2
Access is denied.

Ensuite, comme on peut le voir, un message d'erreur s'affiche décrivant le problème.

4
user1976