メイン
PowerShell 7でクリップボードの文字列から特定フォルダ以下のフォルダを開くソースコードです。
$basePath = <特定フォルダの絶対・相対パス> $paths = (Get-Clipboard) -split "`r`n" foreach ($path in $paths) { $fullpath = Join-Path $basePath $path if (Test-Path $fullpath -Type Container) { Invoke-Item $fullpath } }
PowerShell 7関係の補足
変数と演算子
変数は$var
(ドル記号+変数名)で参照します。演算子は他の言語と同じようにx op y
と書きますが、比較演算子など一部の演算子表現は表記が特殊です。例えば「<」は-lt
、「<=」は-le
と書きます。詳細は公式ドキュメントの演算子(about_Operator)や比較演算子(about_Comparison_Operators)をご覧ください。
文字列のエスケープ
文字列のエスケープにはバッククォート(グレイヴ・アクセント)「`」を使用します。
"abc`r`ndef" #abc #def
特殊な演算子
文字列の分割や結合は演算子-split
、-join
として提供されます。例えば-split
は次のように使用します。
"abc`r`ndef`r`ngh`r`n" -split "`r`n" #abc #def #gh
参考:about_split
関数の戻り値を使う
関数の戻り値を使うには関数を基本的に丸括弧で囲います。丸括弧がないと関数がどこまでを引数か判別できないためにエラーとなります。
$paths = (Get-Clipboard) -split "`r`n"
確実に引数がない場合は丸括弧なしでも大丈夫です。
$path = Get-Clipboard
foreachループ
C#などと同様に記述します。@(0, 1, 2, 3)
は配列です。
foreach ($i in @(0, 1, 2, 3)) { $i } #0 #1 #2 #3
いくつかの関数
- パスの結合:
Join-Path path1 path2 ...
- パスの存在確認:
Test-Path $path
- ディレクトリの存在確認:
Test-Path $path -Type Container