PowerShell の New-Item でファイルやフォルダを作成したときに、結果を出力しないようにするには $null にリダイレクトさせることで、出力を制御できるようになります。
標準出力
PowerShell のコマンドレットの出力を、$null にリダイレクトすると結果が出力されなくなります。
フォルダ作成時も同様です。
書き方はを末尾に > $null
追加します。
New-Item "sample.txt" > $null
New-Item -ItemType directory "myfolder" > $null
エラー出力
既に存在するファイルを New-Item で作成しようとすると、エラーが発生します。 エラー出力は $null にリダイレクトする前に、エラー出力 (2) を標準出力 (1) に接続してから、$null にリダイレクトすると結果とエラーの両方が出力されなくなります。
New-Item "sample.txt" 2>&1 > $null
New-Item -ItemType directory "myfolder" 2>&1 > $null
他の方法として、try-catch構文を使う方法もあります。 変数 $ErrorActionPreference に Stop を設定し、try-catchを使うことでエラー出力を制御することができます。
$ErrorActionPreference = "Stop"
try {
New-Item "sample.txt" > $null
} catch {
Write-Output "エラーが発生しました"
}
ただし、New-Item コマンドレットに関しては、Test-Path でファイルの存在チェックをしてから、New-Item でファイルを作成すれば、そもそもエラーが発生するケースになりません。
if (!(Test-Path "sample.txt")) {
New-Item "sample.txt"
}
以上です。