You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在批处理文件中将test.txt以UTF-8编码创建?

如何在批处理文件中将test.txt以UTF-8编码创建?

嘿,我明白你的需求啦——你希望批处理生成的test.txt用UTF-8编码,而不是默认的ANSI格式。原来的break > test.txt命令确实会创建ANSI编码的文件,这里给你两种可靠的解决办法:

  • 方法一:用PowerShell创建UTF-8文件(推荐)
    批处理本身没有直接指定编码创建文件的原生命令,但我们可以调用PowerShell来实现。把原来的break > test.txt替换成下面这条命令:

    powershell -Command "'' | Out-File -FilePath 'test.txt' -Encoding utf8"
    

    这条命令会生成不带BOM的UTF-8文件,这也是目前最通用的UTF-8格式。如果你需要带BOM的UTF-8,把参数里的utf8改成utf8BOM即可。

  • 方法二:切换代码页生成UTF-8文件
    你也可以先通过chcp命令切换到UTF-8代码页(编号65001),再创建文件:

    chcp 65001 >nul
    echo. > test.txt
    

    不过这种方法生成的文件会带BOM,而且后续批处理里的输出内容也会采用UTF-8编码,如果你有非UTF-8的字符可能会出现乱码,所以更推荐第一种方法。

下面是修改后的完整批处理代码,已经替换了创建test.txt的部分:

@echo off

cls

:: 创建UTF-8编码的空test.txt(不带BOM)
powershell -Command "'' | Out-File -FilePath 'test.txt' -Encoding utf8"

pushd "C:\Users\MARKETING 1\Desktop\SHARED" || exit /B 1

for /D %%D in ("*") do (
    rd /S /Q "%%~D"
)

for %%F in ("*") do (
    if /I not "%%~nxF"=="FILES SAVED HERE WILL BE AUTOMATICALLY DELETED EVERY SATURDAY.txt" del "%%~F"
)

popd

start test.txt

echo %DATE% %TIME% >> test.txt

if %errorlevel% NEQ 1 Echo ERROR DETECTED>>test.txt
if %errorlevel% EQU 1 Echo No error detected>>test.txt
if %errorlevel% NEQ 1 (echo No errors found) ELSE (echo ERROR DETECTED)>>test.txt
if %errorlevel% EQU 1 echo No errors found || echo ERROR DETECTED>>test.txt

dir "C:\Users\MARKETING 1\Desktop\SHARED">>test.txt

备注:内容来源于stack exchange,提问作者Mirko Nastasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 10:47:45