首页 > 其他分享 >利用bat文件在命令行进行代理切换

利用bat文件在命令行进行代理切换

时间:2023-04-04 15:56:50浏览次数:43  
标签:bat set http goto PROXY 切换 命令行 localhost proxy

命令行里,用python也好,用scoop也好,用git也好,总是需要用代理搞一下。
看到有篇博客写了一个简单的函数,用来做命令行的开关,于是我也仿着人家写了一个bat,用来做cmd的代理开关。
其中遇到了一些小坑,稍微趟了一下,哎,可能power shell就没这么多破事了吧。
批处理的语法实在是太原始了,脑壳疼。
写完这个脚本之后,我把它放到了system32下,起名hp.bat,这样在命令行直接hp就可以开关代理了。这个名字是向人家博客致敬。

@echo off

::一定要用defined检查一下变量是否存在,如果是空的话,变量可能是不存在的,小坑1
if defined HTTP_PROXY goto check
goto set

::判断变量是否为空,我感觉有了上面的,这个check貌似就没用了?
:check
if "%HTTP_PROXY%"=="" goto set
goto clear

:set
set HTTP_PROXY=http://localhost:12345
set HTTPS_PROXY=http://localhost:12345
echo "set proxy"
goto end

:clear
set HTTP_PROXY=
set HTTPS_PROXY=
echo "clear proxy"
goto end

:end

本来是想把这两个set句子放到terminal的新建窗口中,可是怎么也写不对,我是这么写的(下面是错误示范!虽然引号内的语法是正确的):
cmd.exe /k "set http_proxy=http://localhost:12345 & set http_proxy=http://localhost:12345"
结果用curl测试的时候,总说不支持http://localhost:12345(这里有个空格,不知道为啥发布了,就没有了)。我开始以为哪里搞错了,后才仔细一看,原来http_proxy这个值最后有空格。。
我查了好久。。。
算了,跟人家学习,写个开关函数就是了。
后来写脚本也是,想写个or语法,结果它。。没有。。查了一下,说用goto去做。。
行吧。

标签:bat,set,http,goto,PROXY,切换,命令行,localhost,proxy
From: https://www.cnblogs.com/daiday/p/17286691.html

相关文章

  • 阿西莫夫机器人 用 ChatGPT 开发一个能听懂人话的命令行工具
    小结:1、3种角色2、设立榜样ChatGPT会将整个聊天记录作为输入,因此我们可以通过提供一些“榜样”来让ChatGPT更好地理解我们的意图。这意味着我们可以在界面上将ASSISTANT原先错误的回答修改为正确的,也就是给出了正确回答的“好榜样”。   用ChatGPT开发一个能听......
  • gnvm随意切换node版本
    前言:目前公司前端项目正在逐步向vue3转移,但是很多老的vue2项目还是需要维护,这时候就遇见了一个问题,vue3中很多库需要v16+的node版本,而很多老的vue2项目中的插件是需要稍微低一点的node版本(例如老项目中的node-sass库),如果一下就让所有项目的开发成员都把node版本升级到v16+,然后再把......
  • MyBatis-Plus 写 Join 联表查询
    效果展示背景众所周知,MybatisPlus封装的mapper不支持join,如果需要支持就必须自己去实现。但是对于大部分的业务场景来说,都需要多表join,要不然就没必要采用关系型数据库了。使用方法仓库地址https://gitee.com/best_handsome/mybatis-plus-join安装Maven<depend......
  • MyBatis的执行流程及核心组件
    MyBatis的执行流程及核心组件如图所示。基本组件介绍Configuration用于描述MyBatis的主配置信息,其他组件需要获取配置信息时,直接通过Configuration对象获取。除此之外,MyBatis在应用启动时,将Mapper配置信息、类型别名、TypeHandler等注册到Configuration组件中,其他组件需要这......
  • MyBatisPlus——条件查询——null值处理与查询投影
    DQL编程控制条件查询——设置查询条件格式一:常规格式 //方式一:按条件查询 QueryWrapperqw=newQueryWrapper(); //10岁到30岁之间的用户 qw.gt("age",10); qw.lt("age",30); List<User>users=userDao.selectList(qw); System.out.println(users);格式......
  • Lecture 5 命令行环境
    课后练习任务控制我们可以使用类似psaux|grep这样的命令来获取任务的pid,然后您可以基于pid来结束这些进程。但我们其实有更好的方法来做这件事。在终端中执行sleep10000这个任务。然后用Ctrl-Z将其切换到后台并使用bg来继续允许它。现在,使用pgrep来查找pid并......
  • 02-切换jenkins工作目录
    1.挪动Jenkins工作空间    修改工作路径并且重启jenkins服务  可以看到正在重启服务了 ......
  • MyBatis插件原理解析(转载)
    前言大多数框架都支持插件,用户可通过编写插件来自行扩展功能,Mybatis也不例外。在Mybatis中最出名的就是PageHelper分页插件,下面我们先来使用一下这个分页插件。如何集成分页插件Spring-Boot+Mybatis+PageHelper引入pom依赖<dependency><groupId>com.github.pagehelper<......
  • 如何通过MyBatis的插件功能来实现分表功能
    前言之前项目中由于几张表的数据量特别的大,在查询的时候特别耗时,所以决定对其进行分表处理。考虑到项目中用的MyBatis作为ORM框架,所以便决定使用它的插件功能来实现动态的替换查询的表来实现分表功能。功能实现整体的目录结构如下TableShard:注解,用来标记需要分表的接口或者......
  • 1005--HBase操作实战(HBase Shell命令行模式)
    通过HBase命令行,创建一张表,用户存储用户信息,其中包括基本信息和额外信息HBaseshell下所有命令可以使用:help“cmd”进行了解1、创建表create't_person',{NAME=>'basic_info'},{NAME=>'extra_info'}2、表中存储数据put't_person','g201425001','ba......