PowerShellのスクリプトにファイルをドラックアンドドロップする方法

コンピュータ

はじめに

PowerShellのスクリプトを実行する場合シェルを起動してコマンド入力しますが、引数ファイルをドラックアンドドロップで実行すると便利な場合があります。
やり方としてはps1ファイルへのショートカットを作成してそちらにファイルをドラックアンドドロップすると引数としてファイル名が引き渡されスクリプトが実行されます。
ショートカットのリンク先は以下のように記述します。
powershell.exe -NoProfile -File (ps1ファイルへのパス)

せっかくですのでショートカットを作るスクリプトを作ってみました。

PowerShellスクリプトを初めて実行する場合

PowerShellスクリプトの実行を許可してください。
Powershellのps1ファイルを実行する方法
Powersehllをはじめるにあたり WindowsのコマンドラインインターフェースであるPowershellはコマンドレットと言われる命令をテキストファイルに記述したスクリプトファイルを実行することが出来ます。Powershellはその...

ショートカットを作るスクリプト

スクリプトのソース

<#
# デスクトップにps1ファイルのショートカットを作成
#
# ファイル名: Create-Shortcut.ps1
#>

$src = $Args[0]

$basename = [System.IO.Path]::GetFileNameWithoutExtension($src);
$dst = (Join-Path "${env:USERPROFILE}`\Desktop"  "${basename}.lnk")

echo "${src} ${dst}"

$wsh = New-Object -ComObject WScript.Shell
$shortcut = $wsh.CreateShortcut($dst)
$shortcut.TargetPath = "${PSHOME}`\powershell.exe"
$shortcut.Arguments = "-NoProfile -File ${src}"
$shortcut.IconLocation = "${PSHOME}`\powershell.exe"
$shortcut.WindowStyle = 7
$shortcut.Save()

スクリプトの使い方

PowerShellで.\Create-Shortcut.ps1 (ショートカット化したいps1ファイルのパス)を実行。パスは絶対パスをセットしてください。

引数をメッセージボックスで表示するスクリプト

スクリプトのソース

<#
# 引数をメッセージボックスで表示するスクリプト
# ファイル名:SampleDandD.ps1
#>
Add-Type -Assembly System.Windows.Forms

$file = $Args[0];

# メッセージボックスの表示
[System.Windows.Forms.MessageBox]::Show("${file}", "引数の値")

スクリプトの使い方

保存したSampleDanD.ps1をCreate-Shortcut.ps1でデスクトップにショートカットを作成してください。
デスクトップに出来上がったショートカットに適当なファイルをドラックアンドドロップしてください。

メッセージボックスにドラックアンドドロップしたファイルのパスが表示されれば成功です。

スクリプトの実行環境

プロダクト名
Windows 10 Home
ビルド番号
17763.316
Powershellバージョン
5.1.17763.316
.NET Framework
.NET Framework 4.7.2

コメント