将包含逗号的参数传递给批处理文件并替换

时间:2015-09-08 20:20:11

标签: regex batch-file cmd

我正在调用我的批处理文件,如下所示

example.bat“abc,xyz”

现在,在批处理文件中,我需要将逗号,替换为%5c%2c

set var1=%1
set var1=%var1:","=%5c%2c%

我甚至尝试过

set var1=%var1:","=%%5c%%2c%
set var1=%var1:,=%5c%2c%

但没有任何效果,它实际上是在最后添加替换而不是逗号。此外,参数最后用双引号打印。

我希望结果为:abc%5c%2c xyz

有人可以帮我解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

你需要延迟扩展。另外,要删除双引号,您应该使用%~1而不是%1。你是正确的加倍百分号,以显示文字%

@echo off
setlocal enabledelayedexpansion

set var1=%~1
set var1=!var1:,=%%5c%%2c!

echo !var1!
pause