- バッチファイルに引数を渡し、そののちの処理で半角小文字英数字以外の文字列はpowershellスクリプトにわたさない、という動作を書く必要ができた。
- C#でexeつくればすぐにできるのに…
- めちゃくちゃ時間かけているので自分のためにもメモを残す。
echo [文字列1] | findstr [文字列2 A-Z記号の羅列]
findstrは文字列2にある文字を、1文字でも含んでいると見つけたことになるようだ。
以下の文字列を列挙したテキストファイルを作成する。
abc
199
abc90
ABC
ABc
AB90
an*
199+
**++
作成したファイルの中身を検索する。
文字列2 [a-z0-9]の場合、記号のみで構成される文字列以外が出力される。
文字列2 ^a-z0-9記号のみで構成される文字列が見つかる。
- 疑問点1
- 大文字の英字を見つけてしまっている
- 疑問点2
- 実際は[a-z]などの範囲指定の時、^が効いていない(/vなら否定してくれる)
- [^a]は[a]に/vと同じ挙動
findstrはオプションをつけることで大文字と小文字を区別しなくなるって書いてあるんだけど…
環境がおかしいんですかね…
powershellの-matchと結果が異なる。-matchは[^a-z0-9]で、記号を含む文字列を見つけてくれるんだよね…
findstrの仕様なのかなあ。