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

あなたのコードが何を達成することになっているのか正確にはわかりませんが(Line代わりに、LINE1または%%i直接使用しない方がよい理由はありません)、ループ内で定義された変数を使用する場合は、遅延展開を使用する必要があります。

SETLOCAL ENABLEDELAYEDEXPANSION

次に、!代わりに使用します%

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

DOブロック内に2つのSETコマンドを含めることができる答えが見つからなかったため、PowerShellを使用してタスクを実行することで質問を解決することになりました。

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