Shell脚本(3)——JS宏的web接口
创作者俱乐部成员
有了前面的铺垫,下面就可以用httpd命令扩展JS宏了,可以通过web接口操作外部的文件。
今天再换一个脚本环境,在这里https://frippery.org/busybox/下载busybox.exe,只需要把这个600k的exe放到环境变量PATH里,比如这里C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps,就可以在cmd里使用100多个Shell命令了。
例1. 读取utf8编码的txt文本
👋 | 对于utf8编码的文本,直接在文本所在目录里,执行httpd命令,就开启了web接口,就可以在JS宏里,使用fetch获取文本的内容了 这一步可以在JS宏里通过shell函数执行httpd,甚至不用手动开启 |
例2. 读取GBK编码的txt文本
📌 | 对于gbk编码的文本,需要转编码为utf8,才能在JS宏里导入,否则中文会乱码 需要在执行httpd命令的目录里,创建cgi-bin文件夹,这个文件夹里的脚本可以通过web请求执行,并获得结果 所以在这里写了一个gbk.sh脚本 其中第一行是说明这是Shell脚本,可以改成python、node等其他脚本 第二行是返回的头部,这里只是设置了返回的编码是utf8 第三行是iconv转编码 之后,在JS宏里访问cgi-bin/gbk.sh,就可以得到转码后的文本内容了 |
例3. 获取pdf的文本内容
📌 | 对于pdf,可以用xpdf项目提供的,pdftotext命令获取文本内容 所以同上,只需要在cgi-bin文件夹里,建立pdf.sh脚本 前两行不变 第三行变成pdftotext转pdf为txt 之后,就可以在JS宏里,访问cgi-bin/pdf.sh,获取pdf的文本内容 |
例4. 写入a.txt文本
🔔 | 只需要在cgi-bin文件夹里,新建out.sh脚本 前两行不变 第三行,用cat命令,重定向输入的内容到../a.txt文件里 第四行,返回ok 就可以在JS宏里,发送POST请求到cgi-bin/out.sh,就可以把请求的body写入文本 如果需要存为gbk文件,只需要把第三行的cat改成iconv命令即可 |
从上面的例子可以看出,只需要写很少的Shell命令,就可以通过httpd命令开启web接口,JS宏里只需要fetch发送请求,就可以操作读写外部的文件
创作者俱乐部成员
创作者俱乐部成员
创作者俱乐部成员