我有以下代码:
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
...
我看了其他类似的问题,看起来这应该有效,但它不在我的系统上。
答案 0 :(得分:2)
我不确定您的代码究竟应该实现什么(为什么不直接使用Line
而不是LINE1
或更好%%i
),但是如果您想使用变量在循环中定义,您应该使用delayed expansion:
SETLOCAL ENABLEDELAYEDEXPANSION
然后使用!
代替%
:
SET LINE1=!LINE!
答案 1 :(得分:0)
我找不到允许我在DO块中有两个SET命令的答案,所以我最终通过使用PowerShell来完成任务来解决问题:
PowerShell -Command "((Get-Content %T1R%) | Foreach-Object {$_ -replace '""[^\w]*>', ''} | Set-Content %T1R%)"