LoginSignup
0
1

More than 3 years have passed since last update.

バッチファイルで半角小文字英数字以外をはじく処理をつくる

Last updated at Posted at 2020-05-14
  • バッチファイルに引数を渡し、そののちの処理で半角小文字英数字以外の文字列は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](実際はオプション/Vで実験)記号のみで構成される文字列が見つかる。

  • 疑問点1
    • 大文字の英字を見つけてしまっている
  • 疑問点2
    • 実際は[a-z]などの範囲指定の時、^が効いていない(/vなら否定してくれる)
    • [^a]は[a]に/vと同じ挙動

findstrはオプションをつけることで大文字と小文字を区別しなくなるって書いてあるんだけど…
環境がおかしいんですかね…

powershellの-matchと結果が異なる。-matchは[^a-z0-9]で、記号を含む文字列を見つけてくれるんだよね…
findstrの仕様なのかなあ。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1