Windows批处理文件 – 拆分字符串以设置变量
发布时间:2020-12-13 20:42:01 所属栏目:Windows 来源:网络整理
导读:我觉得我正在围绕着FOR循环选项. 我正在尝试获取一个字符串(输出一个命令)并将其拆分为逗号,然后使用每个值来设置,例如 字符串:USER = Andy,IP = 1.2.3.4,HOSTNAME = foobar,PORT = 1234 所以我想在逗号上拆分,然后在SET中逐字地使用该变量.我不知道提前会
我觉得我正在围绕着FOR循环选项.
我正在尝试获取一个字符串(输出一个命令)并将其拆分为逗号,然后使用每个值来设置,例如 字符串:USER = Andy,IP = 1.2.3.4,HOSTNAME = foobar,PORT = 1234 所以我想在逗号上拆分,然后在SET中逐字地使用该变量.我不知道提前会有多少变量. 我尝试过这样的事情: FOR %%L IN (%MYSTRING%) DO ECHO %%L 但是这也是等号的分裂,所以我最终得到了 USER Andy IP 1.2.3.4 等等 我只是希望能够做到以下所以我可以SET USER = Andy等,类似于: FOR %%L IN (%MYSTRING%) DO SET %%L 我错过了哪些选项或标志?
普通FOR命令(无/ F选项)中元素的默认分隔符是空格,制表符,逗号,分号和等号,并且无法修改它,因此您可以使用FOR / F命令以这种方式解决此问题:
@echo off set MYSTRING=USER=Andy,IP=1.2.3.4,HOSTNAME=foobar,PORT=1234 :nextVar for /F "tokens=1* delims=," %%a in ("%MYSTRING%") do ( set %%a set MYSTRING=%%b ) if defined MYSTRING goto nextVar echo USER=%USER%,IP=%IP%,HOSTNAME=%HOSTNAME%,PORT=%PORT% 解决此问题的另一种方法是首先获取变量名称,然后在常规FOR命令中为每对值执行赋值: setlocal EnableDelayedExpansion set varName= for %%a in (%MYSTRING%) do ( if not defined varName ( set varName=%%a ) else ( set !varName!=%%a set varName= ) ) echo USER=%USER%,PORT=%PORT% (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows服务器管理器停留在’显示将在服务器库存完成时完成
- windows – 在进行设置之前,在SysPrep之后的第一次启动时是
- windows-server-2012 – Server 2012,服务器管理器仪表板
- windows相当于linux ssh -X server命令
- 怎么删除服务中的mysql服务
- windows-7 – Windows7引导选项,允许忽略未签名的驱动程序
- windows – 请求的操作需要提升
- windows – 如何从Visual Studio Code的上下文菜单中删除“
- 从64位XE6中的Windows回调返回结果
- Windows开机报0xc0000098代码错误故障处理
推荐文章
站长推荐
- windows-server-2008 – 随着时间的推移,响应时间
- .net – 如何在Windows Phone 8.1中添加AppBar
- WinAPI 字符及字符串函数(5): IsCharAlpha - 是否
- PHPstudy2018 后门简单使用
- 您可以使用Mono / LLVM生成比Microsoft的C#编译器
- libintl3和libiconv2 for gnu make在windows上,需
- windows-8 – ManipulationMode解释
- 最大限度地提高.NET中的Window
- windows-server-2008 – 是否可以在保持在线状态
- 09、组策略之软件分发(01-02)
热点阅读