求高手完善一下powershell谷歌翻译的代码
[i=s] 本帖最后由 5i365 于 2022-1-18 11:00 编辑 [/i]前两天尝试使用curl调用百度翻译一直报错没成功, 刚刚国外找到一个批处理, 尝试了一下, 居然成功了, 下面代码运行后, 在生成的g_output.log文件中能看到结果
批处理的主体是powershell代码, 但是它没有直接输出翻译结果, 而是生成到两个文件中了, 求高手优化完善一下, 非常感谢
下面这个q关键字应该是请求的文本,但是有好多%%, 我直接把hello改成别的, 也不行, 不明白为什么,求指点
q=%%E2%%80%%9Chello%%E2%%80%%9D[code]@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[/code] q=%%E2%%80%%9Chello%%E2%%80%%9D 这个问题搞定了
我把它修改为 q=hello world
可以成功输出 你好世界 自己改好了, 可以成功输出! 感谢比百度的强多了, 又要注册, 又要密码! 太麻烦了[code]
$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]
[/code] 来学习学习 [b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=250750&ptid=61370]3#[/url] [i]5i365[/i] [/b]
大佬,请问您这个需要谷歌API吗?这一段是替换哪里的,为什么我的output.log里面显示ECHO is on. [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=253555&ptid=61370]5#[/url] [i]vegeta2000[/i] [/b]
3楼代码刚测试, 还能完美输出 [quote]回复 vegeta2000
3楼代码刚测试, 还能完美输出
[size=2][color=#999999]5i365 发表于 2022-3-31 11:04[/color] [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=253558&ptid=61370][img]http://bbs.bathome.net/images/common/back.gif[/img][/url][/size][/quote]
大佬,能否请你发一下修改后完整版的,谢谢! [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=253590&ptid=61370]7#[/url] [i]vegeta2000[/i] [/b]
把hello world改为你要翻译的英文, 执行后就能出中文
[code]$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][/code] [quote]回复 vegeta2000
把hello world改为你要翻译的英文, 执行后就能出中文
[size=2][color=#999999]5i365 发表于 2022-3-31 16:14[/color] [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=253594&ptid=61370][img]http://bbs.bathome.net/images/common/back.gif[/img][/url][/size][/quote]
大佬,您自己改写的这个是在powershell运行,然后翻译结果也是在powershell显示,能否做到读取Excel之类的文档翻译再导出呢? [b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=253616&ptid=61370]9#[/url] [i]vegeta2000[/i] [/b]
我也是刚学powershell, 综合难度的,目前还不搞定, 你可以把你的需求详细描述一下, 新开个贴子, 应该有大侠支招的,
我有个贴子好像是用这个翻译文本文件的,[color=#0000ff][size=16px]idwma大侠帮忙搞的, 你可以在我的贴子中找找看[/size][/color] 没翻到,有空请发一下
页:
[1]