2012-05-27 282 views
1

我得到不同的結果,這取決於我如何設置我的變量批處理腳本SET/P

案例1

@echo off 
set TITLE=Cañete 
setlocal EnableDelayedExpansion 
set "line=<docTitle><text>%TITLE%</text></docTitle>" 
(echo !line!) > test1.txt 

案例2

set /P TITLE=  (I introduce here the same word Cañete) 
setlocal EnableDelayedExpansion 
set "line=<docTitle><text>%TITLE%</text></docTitle>" 
(echo !line!) > test2.txt 

我test1的獲得。 txt正確的文字:

<docTitle><text>Cañete</text></docTitle> 

在的test2.txt,我得到了錯誤的TXT:

<docTitle><text>ca¤ete</text></docTitle> 

我的問題:我如何在情況2正確

<docTitle><text>Cañete</text></docTitle> 

非常感謝獲得。

回答

1

應用CHCP命令到第二碼:

SET /P TITLE=  (I introduce here the same word Cañete) 
SETLOCAL ENABLEDELAYEDEXPANSION 
CHCP 1252 > NUL 
SET "line=<docTitle><text>%TITLE%</text></docTitle>" 
( 
    ECHO !line! 
) > test2.txt 
CHCP 850 > NUL 

我希望我幫助。

+0

它工作得很好。你的回答非常有用!謝謝, –