質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

Q&A

解決済

1回答

1961閲覧

[PowerShell, VSCode] $null should be on the left side of equality comparisons.

autumn_nsn

総合スコア335

PowerShell

Windows PowerShellはコマンドラインインターフェースであり、システム管理を含むWindowsタスク自動化のためのスクリプト言語です。

0グッド

1クリップ

投稿2020/03/30 07:45

お世話になっております。
最近、PowerShellの勉強をしているのですが、以下のようなスクリプトを
記述すると、VSCode上でタイトルのような警告メッセージが表示されます。
しかし、-neをフィルターとして使いたいので、警告通り左右を入れ替えるわけにはいきません。

powershell

1# 空白行を削除する 2$delList = New-Object System.Collections.ArrayList 3for ($i = 0; $i -lt $dstList.Count; $i++){ 4 $temp = $dstList[$i].Trim() 5 if ($temp -eq "") { 6 $delList.Add($i) | Out-Null 7 } 8} 9 10# 逆順にスキャンして要素を削除($nullをセット)していく 11for ($i = $delList.Count - 1; $i -ge 0; $i--) { 12 $dstList[$delList[$i]] = $null 13} 14 15# 配列の要素に$nullが入っているものをカットする 16$dstList = $dstList -ne $null

一応、実行はできるのですが何となく気持ち悪いので警告メッセージを出ないように
したいのですが、いろいろ調べてみたのですがうまくいきません。

まず、スクリプトの先頭行に以下のような記述をしてみました。

powershell

1[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSPossibleIncorrectComparisonWithNull")]

このようにすると、警告メッセージは表示されなくなったのですが、
実行すると以下のようなエラーになってしまいます。

powershell

1Cannot find an overload for ".ctor" and the argument count: "1". 2At C:\Users\nsnhr\Documents\Visual Studio Code\PowerShell\Rename.ps1:1 char:1 3+ [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSPossibleIncorre ... 4+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5+ CategoryInfo : NotSpecified: (:) [], MethodException 6+ FullyQualifiedErrorId : MethodCountCouldNotFindBest

また、$dstList = $dstList -ne $nullの直上に記述すると、警告メッセージは消えません。

どのようにすれば、警告メッセージを抑止できるのでしょうか?
よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/04/01 11:17

SuppressMessageAttribute のコンストラクタには引数が二つ必要です。 次のようにするとどうなりますか? [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSPossibleIncorrectComparisonWithNull", "")]
autumn_nsn

2020/04/01 23:45

Zuishin 様 アドバイスありがとうございました。 確かに上記のように記述したところ、警告メッセージが消えました。 本当にありがとうございました。
guest

回答1

0

自己解決

Zuishin様のアドバイスにより解決致しました。
本当にありがとうございました。

投稿2020/04/01 23:46

autumn_nsn

総合スコア335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問