标题: [问题求助] 求高手完善一下powershell谷歌翻译的代码 [打印本页]
作者: 5i365 时间: 2022-1-18 10:21 标题: 求高手完善一下powershell谷歌翻译的代码
本帖最后由 5i365 于 2022-1-18 11:00 编辑
前两天尝试使用curl调用百度翻译一直报错没成功, 刚刚国外找到一个批处理, 尝试了一下, 居然成功了, 下面代码运行后, 在生成的g_output.log文件中能看到结果
批处理的主体是powershell代码, 但是它没有直接输出翻译结果, 而是生成到两个文件中了, 求高手优化完善一下, 非常感谢
下面这个q关键字应该是请求的文本,但是有好多%%, 我直接把hello改成别的, 也不行, 不明白为什么,求指点
q=%%E2%%80%%9Chello%%E2%%80%%9D- @REM https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=ja&dt=t&q=%E2%80%9Chello%E2%80%9D
- @set scriptfolder=%~dp0%
- @set script=%~n0
-
- @REM activate utf8 encoding in batch script
- @chcp 65001
-
- set retval=
- Call :CallUrlPS
- @echo retval=%retval%
- @echo %retval% > %scriptfolder%%script%_output.log
-
- @GOTO :END
- @REM ==================================
-
- :CallUrlPS
- @SET retval=
- @set cmd=^
- $data = @('',''); ^
- $objRet=Invoke-WebRequest 'https://translate.googleapis.com/translate_a/single?client=gtx^&sl=en^&tl=zh-CN^&dt=t^&q=%%E2%%80%%9Chello%%E2%%80%%9D'; ^
- $data[0]=$objRet.Content; ^
- $data[1]=$objRet.StatusCode; ^
- $data[0]=$data[0].Trim(); ^
- Set-Content -Path '%scriptfolder%%script%_outputPS.log' -Encoding utf8 -Value $data[0]; ^
- $objJson = ConvertFrom-Json $data[0]; ^
- Write-Host $objJson[0][0][0]; ^
- ;
- @SET setarg=powershell -NoLogo -Noninteractive -InputFormat none -Command "%cmd%"
- @FOR /F "tokens=*" %%a IN ('%setarg%') DO @SET retval=%%a
- @GOTO :EOF
-
-
- :END
- pause
复制代码
作者: 5i365 时间: 2022-1-18 11:02
q=%%E2%%80%%9Chello%%E2%%80%%9D 这个问题搞定了
我把它修改为 q=hello world
可以成功输出 你好世界
作者: 5i365 时间: 2022-1-18 13:43
自己改好了, 可以成功输出! 感谢比百度的强多了, 又要注册, 又要密码! 太麻烦了- $data = @('', '')
- $objRet = Invoke-WebRequest 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=zh-CN&dt=t&q=hello world'
- $data[0] = $objRet.Content
- $data[1] = $objRet.StatusCode
- $data[0] = $data[0].Trim()
- $objJson = ConvertFrom-Json $data[0]
- Write-Host $objJson[0][0][0]
复制代码
作者: yangdongsong 时间: 2022-1-18 23:01
来学习学习
作者: vegeta2000 时间: 2022-3-31 11:00
回复 3# 5i365
大佬,请问您这个需要谷歌API吗?这一段是替换哪里的,为什么我的output.log里面显示ECHO is on.
作者: 5i365 时间: 2022-3-31 11:04
回复 5# vegeta2000
3楼代码刚测试, 还能完美输出
作者: vegeta2000 时间: 2022-3-31 15:24
回复 vegeta2000
3楼代码刚测试, 还能完美输出
5i365 发表于 2022-3-31 11:04
大佬,能否请你发一下修改后完整版的,谢谢!
作者: 5i365 时间: 2022-3-31 16:14
回复 7# vegeta2000
把hello world改为你要翻译的英文, 执行后就能出中文
- $data = @('', '')
- $objRet = Invoke-WebRequest 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=en&tl=zh-CN&dt=t&q=hello world'
- $data[0] = $objRet.Content
- $data[1] = $objRet.StatusCode
- $data[0] = $data[0].Trim()
- $objJson = ConvertFrom-Json $data[0]
- Write-Host $objJson[0][0][0]
复制代码
作者: vegeta2000 时间: 2022-3-31 20:36
回复 vegeta2000
把hello world改为你要翻译的英文, 执行后就能出中文
5i365 发表于 2022-3-31 16:14
大佬,您自己改写的这个是在powershell运行,然后翻译结果也是在powershell显示,能否做到读取Excel之类的文档翻译再导出呢?
作者: 5i365 时间: 2022-3-31 21:32
回复 9# vegeta2000
我也是刚学powershell, 综合难度的,目前还不搞定, 你可以把你的需求详细描述一下, 新开个贴子, 应该有大侠支招的,
我有个贴子好像是用这个翻译文本文件的,idwma大侠帮忙搞的, 你可以在我的贴子中找找看
作者: vegeta2000 时间: 2022-3-31 22:38
没翻到,有空请发一下
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |