PowerShellの拡張型の配列から/マッチファイルの種類の拡張子を抽出する方法。ファイル名がまだ一致していない拡張子が含まれています。私は以下のロジックを使用していますが、それは100%正しく動作していない <p>PowerShellの</p>を使用してSharePointライブラリからのみ必要なファイルの種類を抽出したい
スクリプトを修正してください。
$libfiles = ".pptx",".xlsx",".xls",".docx",".doc",".pdf",".jpeg",".jpg",".ppt",".xlsm",".gif",".png"
$libfilesregex = [string]::Join('|', $libfiles)
$arr = @("xlsfile.avi","asxlsxfile.mdf","navigation.css")
foreach($i in $arr)
{
if($i -match $libfilesregex)
{
Write-Host " $($i) File type exists "
}
else
{
Write-Host " $($i) File type does not exist "
}
}
出力です:
xlsfile.aviファイルタイプが
がasxlsxfile.mdfファイルタイプは
navigation.cssファイルの種類が存在しない存在が存在しません
既存のものとして報告されるべきではないことに注意してください。ただし、予期せぬことにです。
おかげ Vishwa私は単純にリストされている拡張機能の全ての前にピリオド(.
) 'をエスケープ'
++正規表現の問題をバイパスする実用的なアプローチです。 PowerShellのようなコードをPowerShellのようなものにすることをお勧めします: '.Contains()'メソッドの代わりに '-contains'演算子、 を使用し、不要な' $(...) 'ラッパーを' [io。 ($ libfiles-contains [io.path] :: GetExtension($ i)){... ' – mklement0
私のポストに建設的なフィードバックをいただきありがとうございます。将来私はそれに応じて自分のコードを調整することを確認します。 – jdwal