通过Windows批处理文件将长命令拆分到多行

38 浏览
0 Comments

通过Windows批处理文件将长命令拆分到多行

我该如何在批处理文件中将长命令分成多行?

admin 更改状态以发布 2023年5月21日
0
0 Comments

插入符的规则是:

在行末的插入符会在下一行添加字符,被添加的行的第一个字符会被转义。

可以多次使用插入符,但完整的行长不能超过最大行长,大约为8192个字符(适用于Windows XP,Windows Vista和Windows 7)。

echo Test1
echo one ^
two ^
three ^
four^
*
--- Output ---
Test1
one two three four*
echo Test2
echo one & echo two
--- Output ---
Test2
one
two
echo Test3
echo one & ^
echo two
--- Output ---
Test3
one
two
echo Test4
echo one ^
& echo two
--- Output ---
Test4
one & echo two

为了抑制下一个字符的转义,可以使用重定向。

重定向必须在插入符之前。

但是使用插入符之前的重定向时有一个特殊情况。

如果在插入符处放置一个标记,该标记将被删除。

echo Test5
echo one 

还可以将换行符嵌入字符串中:

setlocal EnableDelayedExpansion
set text=This creates ^
a line feed
echo Test7: %text%
echo Test8: !text!
--- Output ---
Test7: This creates
Test8: This creates
a line feed

空行非常重要。只有使用延迟扩展时,该方法才有效。否则,行结束符后忽略其余内容。

这种方法有效,因为行末的插入符忽略下一个行结束符并转义下一个字符,即使下一个字符也是行结束符(回车符在这个阶段总是被忽略的)

0
0 Comments

你可以使用插入符号^来分割较长的行,只要记住插入符和其后的新行都会被完全删除。所以,如果你要在分割行的位置加上空格,就要在插入符前加上空格。(更多详细信息请见下文。

例如:

copy file1.txt file2.txt

应该写成:

copy file1.txt^
 file2.txt

0