Подавление сообщений об ошибках в командной строке Windows

предположим, у меня уже есть папка, созданная в следующем файле пути:"C:userscharqusdesktopMyFolder", и я запускаю следующую команду на CMD:

mkdir "C:userscharqusdesktopMyFolder"

Я получаю такое сообщение: "подкаталог или файл C:userscharqusdesktopMyFolder уже существует".

таким образом, есть ли какая-либо команда в командной строке, чтобы избавиться от этих возвращенных сообщений? Я попробовал echo off, но это не то, что я ищу.

2 ответов


перенаправить вывод в nul

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

В зависимости от команды вам также может потребоваться перенаправить ошибки:

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

Microsoft описывает параметры здесь, что полезно для чтения.


предыдущий ответ показывает, как подавить все выходные данные команды. Это удаляет полезный текст ошибки, который отображается в случае сбоя команды. Лучший способ показан в следующем примере:

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

как показано выше, эта команда успешно подавляет исходное предупреждение. Однако, если каталог не может быть создан, как в следующем примере:

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.

затем, как видно, отображается сообщение об ошибке, описывающее проблема.