Powershell脚本(4)——web接口
创作者俱乐部成员
从前文可知,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接口,从浏览器抓取内容写入表格的用法。