我正在使用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。 P>
问题:
当脚本中设置了echo时,for循环中的命令将替换空格,因此脚本无法连接到TFS
CALL tf workspaces -server:tfsserver.com /login:testuser pwd
但是如果将命令作为FOR之外的单独行运行,则echo会按原样显示该命令。
CALL tf workspaces -server:tfsserver.com /login:testuser,pwd
请帮忙
答案 0 :(得分:1)
您需要转义逗号,并在其前面添加^
。字符串替换就足够了
FOR /F "tokens=1" %%A IN (
'tf workspaces -server:%TFS_SERVER% /login:%TFS_CREDENTIAL:,=^,%'
) DO (
echo %%A
)