Windows For循环命令用空格替换逗号

时间:2014-10-07 18:01:01

标签: batch-file

我正在使用Windows批处理脚本,该脚本用于连接到Microsoft TFS以获取特定用户创建的工作空间列表,并受到以下问题的影响。发生问题的脚本部分位于

FOR /F "tokens=1" %%A IN ('CALL tf workspaces -server:%TFS_SERVER% /login:%TFS_CREDENTIAL%') DO ( 
   echo %%A
)

其中TFS_CREDENTIALS是用户名,密码,例如TESTUSER,PWD。

问题:

当脚本中设置了echo时,for循环中的命令将替换空格,因此脚本无法连接到TFS

CALL tf workspaces -server:tfsserver.com /login:testuser pwd

但是如果将命令作为FOR之外的单独行运行,则echo会按原样显示该命令。

CALL tf workspaces -server:tfsserver.com /login:testuser,pwd

请帮忙

1 个答案:

答案 0 :(得分:1)

您需要转义逗号,并在其前面添加^。字符串替换就足够了

FOR /F "tokens=1" %%A IN (
    'tf workspaces -server:%TFS_SERVER% /login:%TFS_CREDENTIAL:,=^,%'
) DO ( 
   echo %%A
)