本帖最后由 5i365 于 2022-1-18 11:00 编辑
前两天尝试使用curl调用百度翻译一直报错没成功, 刚刚国外找到一个批处理, 尝试了一下, 居然成功了, 下面代码运行后, 在生成的g_output.log文件中能看到结果
批处理的主体是powershell代码, 但是它没有直接输出翻译结果, 而是生成到两个文件中了, 求高手优化完善一下, 非常感谢
下面这个q关键字应该是请求的文本,但是有好多%%, 我直接把hello改成别的, 也不行, 不明白为什么,求指点
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 | | | | | | :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 | | pauseCOPY |
|