背景
Win10里面的WSL(Windows Subsystem For Linux)算是一个开发神器了,虽然功能不是100%完善,但是对于轻度开发已经足够了。现在我的日常开发,就是一个全屏CMD跑内部工具,一个全屏WSL跑tmux+vim。
(跑题了)
问题
之前的文章里,我有写到使用github做为图床,并且使用python脚本进行图片上传。但是仍有一点问题,就是之前的脚本只能上传文件,不能直接上传剪贴板里的图片。
解决
发现Windows里面有内置的访问剪贴板工具,但是只在powershell下可用。不过我们可以在WSL里直接调用exe文件(这点非常神奇),然后读出图片文件放入临时文件夹。然后我们再读出这个文件进行上传。
总的流程仍然是上传已有的图片文件,但是我们把它放在临时文件夹并隐藏了起来。看起来就是实现了WSL和Windows剪贴板的互操作。
#!/bin/bash
TMP=/mnt/c/Users/me/AppData/Local/Temp/
TMPWIN=C:\\Users\\me\\AppData\\Local\\Temp\\
ts=`date +"%Y-%m-%d_%H-%M-%S"`
echo "(Get-Clipboard -Format Image).Save(\"$TMPWIN\\$ts.png\")" | /mnt/c/Windows/System32/WindowsPowerShell/v1.0/powershell.exe &> /dev/null
if [ $? -ne 0 ]
then
echo "no image in clipboard"
else
python upload.py $TMP/$ts.png
fi
Comments
comments powered by Disqus