您的位置:首页 > 文旅 > 美景 > 在cmd菜单中使用自定义命令通过bat和powershell命令调用翻译API

在cmd菜单中使用自定义命令通过bat和powershell命令调用翻译API

2024/12/28 9:57:29 来源:https://blog.csdn.net/qq_44839652/article/details/139480203  浏览:    关键词:在cmd菜单中使用自定义命令通过bat和powershell命令调用翻译API

先说一个血淋淋的结果,这个小功能其实在github已经有大佬帮我们封装好了,我也是自己刚倒腾好之后才发现的,所以如果只是需要这个功能的朋友可以直接移步这个项目:https://github.com/kenshinji/yddict,自己电脑安装一个NodeJS就可以
。安装指令:npm install yddict -g

目的:在window电脑不用安装任何变成语言的运行环境就能实现在cmd命令行通过自定义命令键入yd 翻译文本能够得到翻译的信息(我这里使用的是有道翻译API,其他API也大体一致,只是几个参数可能需要改个名字)

1. 前往有道官网先开通个人翻译的API

官网地址:https://ai.youdao.com/console/#/

因为我们是CMD控制台,文字翻译居多,所以我们选择文本翻译即可
在这里插入图片描述
如果是第一次创建还需要填写个人身份证的相关信息,填写完很快就能审核通过

2. 书写PowerShell脚本

新建一个powershell脚本,命名为 yd.ps1,这个文件可以完全不用修改,直接拷过去就好了

using namespace System.Security.Cryptography
using namespace System.Textparam(  [string]$appKey,[string]$appSecret,[string]$fromLang,[string]$toLang,[string]$query,[string]$signType
)# 加密盐值使用uuid
$salt = [System.Guid]::NewGuid().ToString()  # 获取当前系统时间戳(秒)
$utcNow = (Get-Date).ToUniversalTime()    
$curtime = ([DateTimeOffset]::new($utcNow).ToUnixTimeSeconds())# 加密签名:sha256(应用ID+input+salt+curtime+应用密钥)
$signBefore = $appKey + $query + $salt + $curtime + $appSecret
$byteArray = [Text.Encoding]::UTF8.GetBytes($signBefore)  
$sha256 = [System.Security.Cryptography.SHA256]::Create()  
$hashBytes = $sha256.ComputeHash($byteArray)  
$sign = [BitConverter]::ToString($hashBytes).Replace("-", "").ToLowerInvariant()  # 有道翻译API的URL(这只是一个示例,请替换为实际的URL)  
$url = "https://openapi.youdao.com/api?appKey=$appKey&q=$query&from=$fromLang&to=$toLang&salt=$salt&sign=$sign&signType=$signType&curtime=$curtime"# 发送HTTP GET请求  
$response = Invoke-WebRequest -Uri ($url)# 解析JSON响应并获取翻译结果(这取决于有道翻译API的实际响应结构)
$json = $response.Content | ConvertFrom-Json
$translation = $json.translation[0]# 输出翻译结果
Write-Output " ========================================"
Write-Output " "
Write-Output " $translation"
Write-Output " "
Write-Output " ========================================"

3. 书写一个bat批处理文件来调用powershell脚本

再新建一个文件,命名为 yd.bat ,文件内容的 APP_KEY、APP_SECRET需要修改成步骤1中自己申请的翻译API信息。

@echo off
@setlocal:: 有道翻译的应用ID【改成自己的】
@set APP_KEY=自己的应用ID
:: 有道翻译的应用密钥【改成自己的】
@set APP_SECRET=自己的应用密钥
@set FROM_LANG=auto
@set TO_LANG=auto
@set QUERY=%1
@set SIGNTYPE=v3:: 调用PowerShell脚本进行翻译(这里需要全路径,因为windows文件夹有权限控制,需要通过全路径才能访问到,如果windows文件夹路径和我的不一致,这里需要修改)
@powershell -ExecutionPolicy Bypass -File "C:\Windows\System32\yd.ps1" -appKey %APP_KEY% -fromLang %FROM_LANG% -toLang %TO_LANG% -query "%QUERY%" -signType "%SIGNTYPE%" -appSecret "%APP_SECRET%"@endlocal

4. 文件位置

将步骤2和步骤3的两个文件拷贝到window系统路径:C:\Windows\System32 下,在这个路径下的批处理文件可以在cmd里直接输入文件名运行。
在这里插入图片描述

这样我们就可以通过 yd命令快速的翻译文本啦
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com