本帖最后由 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
复制代码
|