在批处理文件中的for循环中转义括号

Escaping brackets in a for loop in batch file

一个字符串中的转义括号如何被 for 循环遍历?

set a=(sample sample(2) sample 3)
for %i in %a% do echo %i
sample was unexpected at this time.

感谢您的帮助。 :)

转义是用插入符 ^ 完成的,在这种情况下只需要转义右括号。

@echo off
set "list=sample sample(2^) sample 3"
for %%i in (%list%) do echo %%i

您可以在循环括号内进行替换:

@Echo Off
Set "a=sample sample(2) sample 3"
For %%i In (%a:)=^)%) Do Echo=%%i
Timeout -1

请记住,%a% 中的字符串格式意味着您有四个项目。