批处理文件是否支持多行变量

Byr*_*ock 21 windows batch-file

如果是这样如何?

是的,批处理文件是蹩脚的,但我不能使用powershell,我不想写一个真正的应用程序来做这个简单的任务....

编辑

我想要的是什么样的东西

set var="this is a 
multi 
line 
string "
Run Code Online (Sandbox Code Playgroud)

jeb*_*jeb 22

或者你可以创建一个"真正的"换行符.

setlocal enableDelayedExpansion
set NL=^


rem two empty line required
echo first line !NL! second line
set multi=Line1!NL!Line2
set multi=!multi!!NL!Line3
echo !Multi!
Run Code Online (Sandbox Code Playgroud)

使用此变体,换行符是字符串中的"普通"字符,因此变量正常运行,您可以将它们分配给另一个变量,这&echo.对于简单的任务非常有用(这对于简单的任务很有用).


T10*_*000 16

这可以吗?

@echo off
set var=kur
set var2=kur2
echo var is = "%var%" and var2 is = %var2%
Run Code Online (Sandbox Code Playgroud)

编辑
就是你的意思?

@echo off
set nl=^& echo.
echo this%nl%is%nl%multiline%nl%string
Run Code Online (Sandbox Code Playgroud)

  • @Ameen原因是`this%nl%is%nl%multiline%nl%string`不是多行字符串。它恰好扩展为 `this^& echo.is^& echo.multiline^& echo.string`。结果与仅使用“echo”和多行字符串得到的结果相同,但它不仅仅是一个“echo”:它是 _four_ echo 以获得四行。我认为这是作弊(或派对伎俩)。 (2认同)

Fab*_*cio 5

SET myFlags= ^
    a ^
    b ^
    c
Run Code Online (Sandbox Code Playgroud)

  • 使用 `echo %myFlags%` 或 `echo !myFlags!` 对我不起作用。 (2认同)