Подавление сообщений об ошибках в командной строке 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.
затем, как видно, отображается сообщение об ошибке, описывающее проблема.