2013-07-16 13 views
2

我想<Context>如何更換等號在批處理腳本

for /f "tokens=* delims=" %%A in (%INTEXTFILE%) do (
SET string=%%A 
setlocal enabledelayedexpansion 
SET modified=!string:^<Context useHttpOnly^="false"^>=^<Context! 
echo !modified! >> %OUTTEXTFILE% 
endlocal 
) 

輸出更換<Context useHttpOnly="false">:沒什麼變化。

由於等號和雙引號引起的問題。

+0

批是無可非議的,這種東西在我看來。你可以使用這樣的東西:http://www.seabreezecomputers.com/htmlstripper/去掉屬性。只需放入您想要保留的標籤以及哪些屬性並按下提交即可。我想這不會工作,如果這是你必須做人時代的事情。 – Gray

+1

使用字符串操作和特殊字符時,批處理是一個麻煩。它可以完成,但不是沒有限制。強烈建議您使用其他腳本語言,如JScript/VBScript或PowerShell,如果您想執行字符串操作。看到http://stackoverflow.com/a/8591185/891976 –

回答

2
@echo off 
SET "string=<Context useHttpOnly="false">" 
setlocal EnableDelayedExpansion 
echo String: !string! 
for /F "tokens=1,2 delims==>" %%i in ("!string!") do (
    if "%%i" equ "<Context useHttpOnly" if "%%~j" equ "false" set "modified=<Context>" 
) 
echo Modified: !modified! 
+0

我已經嘗試過,但它不工作。我已將它寫入單獨的bat文件並運行但未成功。其實我必須在xml文件中替換這個字符串。所以我必須在xml文件中找到它並替換它... – user2587496