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

如何在Batch/CMD中读取多行文本文件内容到变量中

如何在Windows批处理中将多行文本文件内容存入变量

批处理中set /p只能读取文件第一行,type命令无法直接将输出赋值给变量,以下是两种可行的解决方法:

方法一:启用延迟扩展的循环拼接

通过for /f逐行读取文件内容,结合延迟扩展实现多行内容的拼接:

@echo off
setlocal enabledelayedexpansion

:: 定义换行符(注意:^后需跟一个空行)
set "newline=^

"

set "message="
for /f "delims=" %%a in (message.txt) do (
    if defined message (
        set "message=!message!!newline!%%a"
    ) else (
        set "message=%%a"
    )
)

:: 输出验证变量内容
echo !message!
endlocal
  • enabledelayedexpansion:允许在循环内部实时更新变量值
  • delims=:避免读取时截断包含空格的行
  • 定义的newline变量用于保留原文件的换行格式

方法二:借助PowerShell读取(更稳定)

利用PowerShell的Get-Content命令直接读取全部内容,再传递给批处理变量:

@echo off
for /f "delims=" %%a in ('powershell -command "(Get-Content message.txt -Raw).Replace('`n', '`r`n')"') do set "message=%%a"

:: 输出验证变量内容
echo %message%
  • Get-Content -Raw:一次性读取文件所有内容为单个字符串
  • Replace('n', 'rn')`:将Unix换行符转换为Windows标准的CRLF格式
  • 此方法对包含特殊字符(如&、|等)的文件兼容性更好

内容的提问来源于stack exchange,提问作者Kirubel Demelash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 13:31:02