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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/682191.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JVM】已验鼎真,鉴定为:妈妈加载的(双亲委派模型)

【JVM】已验鼎真,鉴定为:妈妈加载的(双亲委派模型) 在Java的世界中,类加载器(ClassLoader)是Java虚拟机(JVM)用来动态加载类的基础组件。双亲委派模型(Paren…

grpc接口调用

grpc接口调用 准备依赖包clientserver 参考博客&#xff1a; Grpc项目集成到java方式调用实践 gRpc入门和springboot整合 java 中使用grpc java调用grpc服务 准备 因为需要生成代码&#xff0c;所以必备插件 安装后重启 依赖包 <?xml version"1.0" encoding&…

云服务(ECS)Docker安装vulhub安装详解

本文以xshell进行远程控制 1.以ssh连接云服务器 ssh 服务器名公网ip [D:\~]$ ssh root47.99.138.9 在弹框中输入密码 2.安装docker curl -s http://get.docker.com/ | sh rootiZbp1fm14idjlfp53akni8Z:~# curl -s https://get.docker.com/ | sh # Executing docker insta…

fairseq框架使用记录

sh命令 cmd"fairseq-train data-bin/$data_dir--save-dir $save_dir--distributed-world-size $gpu_num -s $src_lang -t $tgt_lang--arch $arch--dropout $dropout--criterion $criterion --label-smoothing 0.1--task mmt_vqa--optimizer adam --adam-betas (0.9, 0.98…

Vue的APP实现下载文件功能,并将文件保存到手机中

Vue的APP实现下载文件功能&#xff0c;并将文件保存到手机中 文字说明后台核心代码前台核心代码运行截图项目链接 文字说明 本文介绍Vue实现的APP&#xff0c;将文件下载并保存到手机中&#xff0c;为系统提供导出功能&#xff1b;同时支持导入&#xff0c;即选择本地的文件后&…

【动手学深度学习】卷积神经网络CNN的研究详情

目录 &#x1f30a;1. 研究目的 &#x1f30a;2. 研究准备 &#x1f30a;3. 研究内容 &#x1f30d;3.1 卷积神经网络 &#x1f30d;3.2 练习 &#x1f30a;4. 研究体会 &#x1f30a;1. 研究目的 特征提取和模式识别&#xff1a;CNN 在计算机视觉领域被广泛用于提取图像…

【AI大模型】Transformers大模型库(四):AutoTokenizer

目录​​​​​​​ 一、引言 二、自动分词器&#xff08;AutoTokenizer&#xff09; 2.1 概述 2.2 主要特点 2.3 代码示例 三、总结 一、引言 这里的Transformers指的是huggingface开发的大模型库&#xff0c;为huggingface上数以万计的预训练大模型提供预测、训练等服…

Java基础27,28(多线程,ThreadMethod ,线程安全问题,线程状态,线程池)

目录 一、多线程 1. 概述 2. 进程与线程 2.1 程序 2.2 进程 2.3 线程 2.4 进程与线程的区别 3. 线程基本概念 4.并发与并行 5. 线程的创建方式 方式一&#xff1a;继承Thread类 方式二&#xff1a;实现Runable接口 方式三&#xff1a;实现Callable接口 方式四&…

【操作系统】(详细理解进程的状态)执行状态、就绪状态、阻塞状态、挂起状态

下面是进程的几种状态的概念&#xff1a; 执行状态&#xff1a;当一个进程已获得必要资源&#xff0c;并占有CPU进行执行。 就绪状体&#xff1a;进程已分配到除CPU外的所有必要资源&#xff0c;只要获取CPU允许就可立即执行。 阻塞状态&#xff1a;正在执行的进程&#xff0c;…

C++之虚函数与多态

1、多态 前面三种称为静态绑定&#xff08;静态多态&#xff09;&#xff0c;最后面的虚函数&#xff0c;则称为动态绑定&#xff08;动态多态&#xff09;。 2、静态绑定与动态绑定 要实现动态绑定&#xff0c;就必须使用虚函数。 3、虚函数 只有当你在&#xff1a;基类的指…

计算机组成原理·考点知识点整理

根据往年考试题&#xff0c;对考点和知识点的一个整理。 校验编码 码距 一种编码的最小码距&#xff0c;其实就是指这种编码的码距。码距有两种定义&#xff1a; 码距所描述的对象含义 2 2 2 个特定的码其二进制表示中不同位的个数一种编码这种编码中任意 2 2 2 个合法编码的…

统一响应,自定义校验器,自定义异常,统一异常处理器

文章目录 1.基本准备&#xff08;构建一个SpringBoot模块&#xff09;1.在A_universal_solution模块下创建新的子模块unified-processing2.pom.xml引入基本依赖3.编写springboot启动类4.启动测试 2.统一响应处理1.首先定义一个响应枚举类 RespBeanEnum.java 每个枚举对象都有co…

JVMの垃圾回收

在上一篇中&#xff0c;介绍了JVM组件中的运行时数据区域&#xff0c;这一篇主要介绍垃圾回收器 JVM架构图&#xff1a; 1、垃圾回收概述 在第一篇中介绍JVM特点时&#xff0c;有提到过内存管理&#xff0c;即Java语言相对于C&#xff0c;C进行的优化&#xff0c;可以在适当的…

技术回眸一笑

回忆一下一年前的出差日记吧&#xff0c;那个时候真的是一点经验没有&#xff0c;干硬件又干软件&#xff0c;只能一步一步慢慢摸索&#xff0c;努力过后慢慢成长起来的吧。那个时候甚至开学了都没有正常报道&#xff0c;但是也收获了不少东西&#xff0c;并且也将作为我后来继…

Vue——组件数据传递与props校验

文章目录 前言组件数据传递的几种类型简单字符串类型数据专递其他类型数据(数字、数组、对象)传递注意事项 数据传递值校验限定数据类型 type给定默认值 default指定必选项 required 前言 组件与组件之间并不是完全独立的&#xff0c;他们之间可以进行一些数据的传递操作。传递…

10个高清视频素材库分享,高清高质量的分享给你

今天&#xff0c;我将为各位介绍几个极具价值的高清视频素材库。无论您是短视频创作者、自媒体运营者还是影视后期制作专家&#xff0c;这些素材库将大大提升您作品的质量。现在&#xff0c;让我们直接深入主题&#xff0c;探索这些优秀的资源平台&#xff01; 蛙学府视频素材…

使用cesiumLab使shp转为3dtlies

过程不做赘述&#xff0c;网上大把&#xff0c;说下注意事项。 1. 存储3DTiles 选项 若是打开则输出的文件为glb格式文件,因为glb文件好储存易传输跨平台。cesium可以使用但无法处理&#xff0c;例如改变颜色&#xff0c;改着色器等。若是不打开则输出的文件为bm3d格式文件,此…

ShowDoc item_id 未授权SQL注入漏洞复现

0x01 产品简介 ShowDoc 是一个开源的在线文档协作平台,它支持Markdown、图片等多种格式,方便团队成员共同编辑和分享文档。企业常见使用场景是使用其进行接口文档、内部知识库管理。 0x02 漏洞概述 2024年6月,ShowDoc官方发布新版本修复了一个SQL注入漏洞。鉴于该漏洞无前…

k8s怎么监听自定义资源的变更?(2)

接上一篇当生成下面代码之后怎么去使用呢&#xff1f; 1.生成crd文件 这里我们通过kubebuilder的一个子项目 controller-gen 来生成crd文件 https://github.com/kubernetes-sigs/controller-tools curl -L -o https://github.com/kubernetes-sigs/controller-tools; go ins…

【前端】响应式布局笔记——flex

二、Flex Flex(FlexiableBox:弹性盒子&#xff0c;用于弹性布局&#xff0c;配合rem处理尺寸的适配问题)。 1、flex-direction:子元素在父元素盒子中的排列方式。 父级元素添加&#xff1a;flex-direction: row; 父级元素添加&#xff1a;flex-direction: row-reverse; 父…