Python Windows批处理脚本中的URL编码

Python Windows批处理脚本中的URL编码,python,linux,windows,batch-file,Python,Linux,Windows,Batch File,我有一个Windows批处理脚本,可以用来快速搜索Google。但是,我不知道如何对特殊字符进行一般编码。比如,如果我试图搜索C#,英镑符号会打破它。这是我的密码: SET q="https://www.google.com/#q=%*" SET q=%q: =+% chrm %q% 我不认为有一个好方法可以直接在WindowsBAT脚本中实现这一点。Python是一个很好的解决方案,可以解决像这样的一些较重的问题,而且它是跨平台的,这总是很好的。由于您使用的是Windows,因此可能需要编写

我有一个Windows批处理脚本,可以用来快速搜索Google。但是,我不知道如何对特殊字符进行一般编码。比如,如果我试图搜索C#,英镑符号会打破它。这是我的密码:

SET q="https://www.google.com/#q=%*"
SET q=%q: =+%
chrm %q%

我不认为有一个好方法可以直接在WindowsBAT脚本中实现这一点。Python是一个很好的解决方案,可以解决像这样的一些较重的问题,而且它是跨平台的,这总是很好的。由于您使用的是Windows,因此可能需要编写powershell脚本来完成此操作。不过,这里有一个我编写的Python 3脚本,我认为它符合您的要求

导入系统 导入子流程 导入urllib.parse browser=sys.argv[1] browserParms=sys.argv[2] queryString=”“.join(sys.argv[3:]) queryString=urllib.parse.quote(queryString) url=”https://www.google.com/#q=“+询问 subprocess.Popen([browser,browserParms,url]) sys.exit() 这是一个Linux本机脚本,您可以在其中设置具体内容。您可以在windows批处理文件中执行类似的操作。我将其命名为goog(没有扩展名,因为这样太多,无法键入:))

#/bin/bash
python3/home/justin/Dropbox/MyFiles/Programs/CrossPlatform/python3/GoogleSearch.py“firefox”-新窗口“$@”
确保本机脚本位置位于$PATH中。从终端像这样执行或运行命令

goog i like turtles

无需安装任何外部工具:

@echo off
setlocal


set "string=gibberish+?blahblah@"


:: Define simple macros to support JavaScript within batch
set "beginJS=mshta "javascript:code(close(new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write("
set "endJS=)));""



:: FOR /F does not need pipe
for /f %%N in (
  '%beginJS% encodeURIComponent("%string%") %endJS%'
) do set encoded=%%N
echo %string% -^> %encoded%

这是一个不需要动脑筋的问题,只要你退一步想想。在谷歌上搜索C#,然后查看谷歌在你的浏览器中返回的url。@Squashman我想他想对所有特殊字符进行编码,手动这样做需要foreverDennis才是正确的。我知道如何手动查找字符编码。我接受了他的回答,非常好!这正是我想要的。这是一个非常好的解决方案,但我必须将Npcmaka的解决方案标记为已被接受,因为它确实是我想要的。我不想安装python。