例えば、デスクトップにショートカットを作る。
コマンドプロンプトを起動して、Ruby スクリプト・a.rb を実行する

リンク先
C:\Windows\System32\cmd@.exe /k "ruby C:/Users/Owner/Documents/a.rb"
(ただし、書き込めないので、間に@を入れました)

作業フォルダ
C:\Users\Owner\Desktop

例えば、a.rb 内では、以下のようにRubyスクリプト内で、
7zip を起動して、ドロップしたファイルのSHA256 ハッシュ値を求める

command = "C:/Program Files/7-Zip/7z.exe"
option = " h -scrcsha256 "

ARGV.select { |full_path| File.file?( full_path ) } # ファイルのみ
.each do |full_path|
res = `#{ '"' + command + '"' + option + '"' + full_path + '"' }` # コマンド実行

puts full_path + res + ( "-" * 20 )
end

(ARGV は配列で、そこにコマンドライン引数・ドロップしたファイルパスが渡ってくる)

それで、ショートカットに、複数のファイルをdrag&drop すると、
コマンドプロンプトが起動して、各ファイルのハッシュ値が求められる

ただし、空白入りの実行ファイルのパスの前後を、"〜" で囲む事で、
Program Files の空白文字も処理できるが、
ドロップしたファイルパスに空白文字があると、
パスの前後を、"〜" で囲んでも、エラーになって処理できない