gpt4 book ai didi

windows - 如何在 cmd.exe 中用百分比字符替换?

转载 作者:可可西里 更新时间:2023-11-01 11:27:57 28 4
gpt4 key购买 nike

在 Windows 命令提示符下,我试图用字符串 %20 替换 set string=Hello World 中的空格。像这样天真地尝试使用字符串文字 %20:

set string=%string: =%20%

HelloWorld20% 的结果。尝试像这样使用转义字符 ^:

set string=%string: =^%20%

还会生成 HelloWorld20%。试图通过像这样加倍来逃避 %:

set string=%string: =%%20%

结果为 HelloWorld%20%。我还尝试使用另一个变量来进行这样的替换:

set r=%20
set string=%string: =%r%%

结果是 HelloWorldr%%

我找到了 this ,它处理变量中百分比字符的转义。我还找到了this ,它处理百分号字符的转义输入。但似乎都不适用于字符串替换。

A tutorial/docu page for the Windows cmd.exe我在网上找到的告诉我我有正确的语法,但不包括用百分号字符替换。

看完所有这些之后,我尝试了:

setlocal EnableDelayedExpansion
set string=!string: =%20!

结果为 !string: =%20!

我没主意了,你能帮忙吗?

最佳答案

在这种情况下你需要延迟扩展:

set "str1=Hello World!"
set "str2=%20"
for /f "delims=" %a in ('cmd /v:on /c @echo "%str1: =!str2!%"') do set "str3=%~a"
echo %str3%

What is delayed expansion?

关于windows - 如何在 cmd.exe 中用百分比字符替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29944902/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com