web-dev-qa-db-ja.com

Windowsコマンドラインでエラーメッセージを表示しない

次のパスファイルにフォルダーが既に作成されているとしましょう:"C:\users\charqus\desktop\MyFolder"、そして私はCMDで次のコマンドを実行します:

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

次のようなメッセージが表示されます:"サブディレクトリまたはファイルC:\ users\charqus\desktop\MyFolderは既に存在します"

したがって、コマンドラインにこの返されたメッセージを取り除くコマンドはありますか?エコーオフを試しましたが、これは私が探しているものではありません。

13
charqus

出力をnulにリダイレクトします

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

コマンドによっては、エラーのリダイレクトも必要になる場合があります。

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

Microsoftはここでオプションを説明しています 、これは読みやすいです。

32
Roger Rowland

以前の回答は、コマンドからのすべての出力をスケルチする方法を示しています。これにより、コマンドが失敗した場合に表示される役立つエラーテキストが削除されます。次の例に、より良い方法を示します。

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.

次にわかるように、問題を説明するエラーメッセージが表示されます。

4
user1976