中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 19:50
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何将txt文本文件的utf-8编码转换成unicode编码!! 查看 6,906 回复 17
16 发表于 2008-05-18 23:09 ·  中国 北京 联通数据上网公共出口
银牌会员
★★★
积分 1,287
发帖 634
注册 2007-05-02 15:06
19年会员
UID 87277
性别 男
来自 cmd.exe
状态 离线
论坛有。。。自己搜索.
17 发表于 2008-06-02 15:26 ·  中国 台湾 中华电信(HiNet)数据中心
初级用户
积分 109
发帖 30
注册 2007-09-05 14:27
18年会员
UID 96621
性别 男
状态 离线
使用方法:
點兩下 或 拉文件進來

如果用這兩種方法以外的其他方法來使用,可能會發生錯誤

@echo off
if "%~1" == "" goto main


set "wfiles=%cmdcmdline:"=%"
call set "wfiles=%%wfiles:*%~d0=%%"
call set "wfiles=%%wfiles:*%~d1=%%"
call set "wfiles=%%wfiles: %~d1=" "%~d1%%"
set wfiles="%~d1%wfiles%"

if "%cmdcmdline:~0,3%" == "cmd" call :ddd %wfiles%
if not "%cmdcmdline:~0,3%" == "cmd" set wfiles=%*
goto main

:ddd
cd/d "%~dp1"
goto :eof

::--------------------------------------------------------------
:main



echo 1 GB2312
echo 2 Big5
echo 3 Shift_JIS
echo 4 EUC-KR
echo 5 UTF-8
echo 6 Unicode
echo.
echo A --^> B
echo A=? (1-6)
set /p aaa=
echo B=? (1-6)
set /p bbb=

echo %aaa%|findstr /be "" >nul ||goto :eof
echo %bbb%|findstr /be "" >nul ||goto :eof
if "%aaa%" == "%bbb%" goto :eof

if not defined wfiles set /p wfiles=Files???
if not defined wfiles goto :eof


echo Set objFSO = CreateObject("Scripting.FileSystemObject") > MakeBOM.vbs
echo Set objFile = objFSO.CreateTextFile("Unicode.BOM",,true) >> MakeBOM.vbs
cscript //Nologo MakeBOM.vbs

md After_Convert\tmp



:loop
set vvv=%aaa%
if "%aaa%" == "6" set vvv=%bbb%

for /f "tokens=%vvv%" %%a in ("936 950 932 949 65001") do (
reg add "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /v CodePage /t REG_DWORD /d %%a /f >nul
)

if not "%aaa%" == "6" (
if not "%bbb%" == "6" (
start /wait /min cmd /u /c "for %%a in (%%wfiles%%) do copy Unicode.BOM tmpfile.tmp&type "%%~fa" >> tmpfile.tmp&move /y tmpfile.tmp After_Convert\tmp\"%%~nxa""
set aaa=6
set wfiles=After_Convert\tmp\*
goto loop
)
)


if "%bbb%" == "6" (
start /wait /min cmd /u /c "for %%a in (%%wfiles%%) do copy Unicode.BOM tmpfile.tmp&type "%%~fa" >> tmpfile.tmp&move /y tmpfile.tmp After_Convert\"%%~nxa""
) else (
start /wait /min cmd /c "for %%a in (%%wfiles%%) do type "%%~fa" > After_Convert\"%%~nxa"")



reg delete "HKCU\Console\%%SystemRoot%%_System32_cmd.exe" /v CodePage /f >nul
del MakeBOM.vbs
del Unicode.BOM
rd After_Convert\tmp /s /q
start After_Convert


[ Last edited by mkd on 2008-6-2 at 10:35 PM ]
18 发表于 2009-12-02 17:51 ·  中国 北京 联通
初级用户
积分 39
发帖 27
注册 2007-09-10 17:46
18年会员
UID 97038
性别 男
状态 离线
高手,我真是太吃惊了,学习也学不过来了
论坛跳转: