2012-05-29 49 views
0

我在此站點上找到了這個有用的腳本,用於將值分配給txt文件中的行。在批處理文件中,從包含西班牙字符的文件中的行中設置變量

@echo off 

setlocal ENABLEDELAYEDEXPANSION 
set vidx=0 
for /F "tokens=*" %%A in (caplist.txt) do (
    SET /A vidx=!vidx! + 1 
    set var!vidx!=%%A 
    echo %%A 
) 
set var > test.txt 
pause 

它工作正常,但在我的文本文件中的行包含西班牙characteres像N,E等 線中的test.txt是確定的,但在for循環顯示稀奇古怪的字符的回聲。 順便說一句,我只是做一個簡單的文件類型命令獲得相同的效果。

有人能幫助嗎? 非常感謝

回答

0

那是因爲正顯示的cmd.exe的輸出終端窗口是使用在caplist.txt中的字符進行編碼不同的代碼頁。

大概他們正在使用的編碼或者ISO 8859- 1或UTF-8。

在您的終端上嘗試chcp 1250,看看是否可以解決您的問題。

如果不是,則以十六進制方式轉儲文本文件,並找出所用的編碼,並相應地設置終端代碼頁。

+0

事實上,我在這裏問了一個類似的問題,關於set -p和rjjj提供的答案解決了chcp 1250的問題。當然,我嘗試了類似的方法解決這個新問題,但失敗了。我不知道如何轉儲文本文件。 –

+0

它可能被編碼在另一個代碼頁中,然後;或者可能使用UTF-8,儘管這在技術上不是代碼頁。原始txt文件來自哪裏?它是如何生產的?與編輯?哪位編輯?要轉儲文件,使用十六進制轉儲器或十六進制編輯器,您可能會發現幾十個文件。或者嘗試'debug file.txt'然後'd'。 –

+0

我用記事本創建了該文件 –

相關問題