PowerShellで条件付きテストを無効にする方法
たとえば、ディレクトリC:\ Codeを確認したい場合は、次のコマンドを実行します。
if (Test-Path C:\Code){
write "it exists!"
}
その条件を否定する方法はありますか? (動作しない):
if (Not (Test-Path C:\Code)){
write "it doesn't exist!"
}
回避策:
if (Test-Path C:\Code){
}
else {
write "it doesn't exist"
}
これはうまくいきますが、インラインのものを好むでしょう。
あなたはほとんどNot
でそれを持っていました。そのはず:
if (-Not (Test-Path C:\Code)) {
write "it doesn't exist!"
}
!
を使うこともできます:if (!(Test-Path C:\Code)){}
楽しみのためだけに、ビット単位の排他的論理和を使うこともできますが、もっとも読みやすく理解しやすい方法ではありません。
if ((test-path C:\code) -bxor 1) {write "it doesn't exist!"}
あなたが私のようで二重括弧が嫌いなら、あなたは関数を使うことができます。
function not ($cm, $pm) {
if (& $cm $pm) {0} else {1}
}
if (not Test-Path C:\Code) {'it does not exist!'}
PowershellはC/C++/C * not演算子も受け入れます
if(!(Test-Path C:\ Code)){write「存在しません!」 }
私はC *に慣れているので頻繁に使用します...コードの圧縮/単純化を可能にします...私もそれがよりエレガントであることがわかります...