ファイル名の入力を検証し、無効な文字がPowerShellに含まれているかどうかを確認したいと思います。私はこれらの文字のうちの1つだけが入力されたときに動作するが、与えられた英数字の文字列にこれらの文字が含まれている場合には動作しないようにするアプローチに従ってみた。私は正規表現を正しく構築していないと信じています。与えられた文字列にこれらの文字が含まれているかどうかを検証する正しい方法は何でしょうか?前もって感謝します。Powershellでのファイル名入力の検証
#Validate file name whether it contains invalid characters: \/: * ? " < > |
$filename = "\?filename.txt"
if($filename -match "^[\\\/\:\*\?\<\>\|]*$")
{Write-Host "$filename contains invalid characters"}
else
{Write-Host "$filename is valid"}
必要に応じて、正規表現パターンを次のように作成することができます: '[{0}] '-f [regex] :: Escape(([IO.Path] :: GetInvalidFileNameChars()-join' '))) ' –
Mathias、簡略化されたアプローチが働き、私が探していたものです。ありがとうございました。 – user5349170