Powershell脚本(4)——web接口

wils
wils

创作者俱乐部成员

从前文可知,Powershell在遍历文件、操作com对象、连接数据库等方面比较方便,而这些,正是JS宏所欠缺的。

要在JS宏里使用这些,可以开个web接口,下面使用Pode这个库(其实不使用库也行,只是能偷懒就偷懒🤣

安装Pode模块:Install-Module -Name Pode

👋

#&cls&powershell -NoProfile -NoLogo "gc '%~0'|out-string|iex"&pause&exit

Start-PodeServer {

Add-PodeEndpoint -Address 127.0.0.1 -Port 8080 -Protocol Http

Add-PodeRoute -Method Get -Path '/' -ScriptBlock {

$wps = New-Object -ComObject kwps.application

$d = $wps.Documents.Open((Resolve-Path data.docx).Path)

$j = $d.Paragraphs | %{$_.Range.Text.Trim()} | ConvertTo-Json

Write-PodeJsonResponse -Value $j

$d.Close()

$wps.Quit()

}

}

第一行是昨天说的小技巧,把powershell脚本当成bat批处理来用

  • 然后Start-PodeServer 开启服务

  • 然后Add-PodeEndpoint通过127.0.0.1的8080端口监听http请求,这里可以改端口,也可以改成websocket服务

  • 然后Add-PodeRoute添加路由,这里只处理根目录的Get请求

以上这3行就已经开启了web接口,内部具体要返回什么,就随便了,这里通过com对象,打开了一个docx文件,返回Json格式的,所有段落内容的数组。

剩下的就是熟悉的在JS宏里用fetch发请求获取结果了😁

有了web接口做桥梁,JS宏可以简单做到,遍历操作文件、操作com对象、访问数据库等等,而web接口本身只需要3行代码,能偷懒就偷懒🤣

明天再试试开个web接口,从浏览器抓取内容写入表格的用法。

海南省
浏览 365
1
6
分享
6 +1
1
1 +1
全部评论 1
 
柏安
牛人,学习了
· 福建省
回复