Windows:如何使用动态搜索和替换“设置”?
发布时间:2020-12-14 04:17:07 所属栏目:Windows 来源:网络整理
导读:我想以动态方式使用SET命令的搜索/替换功能. 通常的方式是这样的 SET blah=double-fooSET blah=%blah:foo=bar% 现在我想在第二行使用变量而不是foo和bar: SET search=fooSET repl=barSET blah=double-fooECHO %blah%SET blah=%blah:%search%=%repl%%ECHO %b
我想以动态方式使用SET命令的搜索/替换功能.
通常的方式是这样的 SET blah=double-foo SET blah=%blah:foo=bar% 现在我想在第二行使用变量而不是foo和bar: SET search=foo SET repl=bar SET blah=double-foo ECHO %blah% SET blah=%blah:%search%=%repl%% ECHO %blah% 我得到了 double-foo searchrepl% 我也试过了 SET blah=%blah:(%search%=%repl%)% SET blah=%blah:(%search%)=(%repl%)% 我怎么做到这一点?如果我这样做没有SET,那很好.最后,我希望环境变量保持双杠.
有两种常见的方式(有些不常见).
通过调用使用双扩展. SET search=foo SET repl=bar SET blah=double-foo CALL SET blah=%%blah:%search%=%repl%%% 在第一个“扫描”中,它扩展为CALL SET blah =%blah:foo = bar%,并且调用将秒时间扩展到所需结果. 第二种方式是延迟变种 SETLOCAL EnableDelayedExpansion SET search=foo SET repl=bar SET blah=double-foo SET blah=!blah:%search%=%repl%! 它有效,因为在扩展百分比之后执行延迟扩展. 我更喜欢延迟变体,因为它对特殊字符更快更安全. 一种不常见的方法是FOR-Loop-Variable变体,它也适用于搜索/替换变量中的特殊字符. SETLOCAL EnableDelayedExpansion SET "search=foo>" SET "repl=bar & bar" SET "blah=double-foo> &|<>" for %%s in ("!search!") do ( for %%r in ("!repl!") do ( SET "blah=!blah:%%~s=%%~r!" ) ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 从我的Windows10到我的docker容器中找到我的ssh密钥
- 如何在Windows中将Oracle 11g与nodejs连接?
- hosted-exchange – 使用Microsoft Online Services托管Exc
- 如何使用R 2.15.2让Rtools在Windows上运行?
- 如何在Windows命令行中转义>签名?
- windows-8 – 如何为Windows 8应用程序提供3个初始屏幕大小
- windows – 使用组策略创建EventLog源
- iis-7 – Windows Server 2008 R2上的IIS 7.5可以处理的默认
- AVX2字节用uint16索引收集到__m256i中
- 导出到Microsoft Excel(2007)时,ColdFusion(9)在数字后神秘
推荐文章
站长推荐
- 单例Bean注册表接口SingletonBeanRegistry
- [Windows 8] Windows 8.1预览版下载及实装试用
- BAT脚本将文件从Windows复制到远程Linux系统
- 在Windows XP中使用python在cygwin上显示GBP符号
- windows – 任何人都知道一个好的自包含嗅探器?
- haskell – GHCI在Windows上不那么懒惰?
- VS2017中使用ReportViewer控件,vs2017找不到Mic
- dos – 世界上什么是Zen Simulator?
- windows – DOS批处理:为什么我的set命令导致什
- windows – 如何为SQL Server创建最小权限用户?
热点阅读