在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.Text

param(  
    [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命令快速的翻译文本啦
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啪!~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值