1

我有以下代码:

  for /f "tokens=1 delims=," %%i in (%T1R%.orignal) do (
    set LINE="%%i"
    set LINE1=%LINE%
    echo %LINE1% >> %T1R%
  )

产生以下内容:

...
set LINE="    <Reference Include="Elmah">"
set LINE1=
echo   1>>C:\Temp\sync-msbuild-1R.txt
...

我看过其他类似的问题,看来这应该可行,但它不在我的系统上。

4

2 回答 2

2

我不确定你的代码到底应该实现什么(为什么不直接使用LineLINE1甚至更好%%i),但如果你想使用在循环中定义的变量,你应该使用延迟扩展

SETLOCAL ENABLEDELAYEDEXPANSION

然后使用!代替%

SET LINE1=!LINE!
于 2012-09-17T16:31:35.710 回答
0

我找不到允许我在 DO 块中有两个 SET 命令的答案,所以我最终通过使用 PowerShell 来完成任务来解决这个问题:

PowerShell -Command "((Get-Content %T1R%) | Foreach-Object {$_ -replace '""[^\w]*>', ''} | Set-Content %T1R%)"
于 2012-09-18T14:58:53.267 回答