Hello Friend

原本分享截圖的方法是使用imgur或是gifyu把圖片丟上去,但這兩個服務偶爾會有小狀況,於是就想說放到自己的google cloud storage上好了。

不過google cloud storage預設的上傳介面不好用,用gcloud sdk提供的gsutil的話又很麻煩,於是就打算用個右鍵選單執行腳本來處理這件事情。

  1. 首先是新增選單項目

使用搜尋尋找regedit關鍵字後,開啟登錄編輯程式找到電腦\HKEY_CLASSES_ROOT\SystemFileAssociations\項目。

Hello Friend

裡面會有很多用副檔名來命名的項目,找到要設定的副檔名後(這裡是.png),在裡面的shell下新增個機碼機碼的名字就會是右鍵選單會顯示的字。

Hello Friend
  1. 接著設定要執行的檔案

接著在剛剛新增的機碼裡再新增個叫command機碼,裡面的預設值內容就填寫要執行的指令,像是:

PowerShell.exe -File "C:\Users\user\Documents\script.ps1" "%v"

Hello Friend
  1. 寫好腳本內容

首先確認好自己的電腦有安裝好gcloud sdkgsutil也可以正常運作,剩下的就是寫好指令了:

# google cloud storage的bucket位置
$bucket_path = ""

# 最後顯示的網址
$output_url = ""

# 副檔名
$file_type = "png"

# 取得右鍵的檔案路徑
$input_path = $args[0]

# 取得該檔案的MD5字串來當作檔名
$hash_info = Get-FileHash $args[0] -Algorithm MD5 | Format-List -Expand EnumOnly -Property "Hash" | Out-String
$hash_info = $hash_info -replace '\s',''
$hash = $hash_info.Split(" : ")[1]


# 開始上傳
gsutil cp "$input_path" "$bucket_path/$hash.$file_type"

# 瀏覽器開啟網址
$url = "$output_url/$hash.$file_type"
Start-Process $url

第一次寫powershell所以很不習慣,當初在理解split還花了不少時間,習慣用grepawk來篩選字串後換來這邊真的不習慣。

Hello Friend

最後放個結果截圖。