如何将批处理文件变量分配给另一个变量?

时间:2012-09-17 14:20:04

标签: batch-file

我有以下代码:

  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
...

我看了其他类似的问题,看起来这应该有效,但它不在我的系统上。

2 个答案:

答案 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%)"