我正在尝试在上执行命令cmd.exe
,并将换行符或换行符作为命令的一部分,如下所示:
command -option:text
whatever
但是每个新行都会执行命令,而不是在下一行继续执行命令。
那么,如何在cmd.exe中输入换行符或创建多行命令?
我正在尝试在上执行命令cmd.exe
,并将换行符或换行符作为命令的一部分,如下所示:
command -option:text
whatever
但是每个新行都会执行命令,而不是在下一行继续执行命令。
那么,如何在cmd.exe中输入换行符或创建多行命令?
Answers:
使用^
字符作为转义符:
command -option:text^
whatever
我假设您使用的是Windows XP或类似版本的cmd.exe。这不是实际的DOS。如果您使用的是实际的DOS(MS-DOS,Win3.1,Win95,Win98,WinME),那么我不认为换行符是可以解决的。您将需要运行自定义外壳。cmd.exe将提示您输入“更多?”。每次您按Enter并^
在该行的末尾按一次,只需再次按Enter即可实际转义/嵌入换行符。
SHUTDOWN.EXE
命令注释中添加换行符的方法。我最终使用了这样的东西:shutdown -s -t 900 -c "foo bar"^
>更多? "baz"^
>更多? "test that."
有效。
C:\>ver
Microsoft Windows [Version 6.3.9600]
C:\>echo Line1◙Line2 >con
Line1
Line2
C:\>
可以使用小键盘在命令行上将该换行符作为Alt代码输入:启用NumLock的同时,按住ALT并在数字键盘上键入10,然后再释放ALT。如果还需要CR,请同时使用Alt + 13和Alt + 10键入它们:♪◙
注意:这不适用于批处理文件。
示例用例:
您正在尝试读取%PATH%或%CLASSPATH%环境变量以快速了解其中的内容和顺序,但是path
返回的文本是不可读的。然后,您可以快速输入以下内容:
echo %path:;=◙% >con
编辑:
添加了>con
Brent Rittenhouse针对cmd.exe的较新版本发现的解决方法,该方法原来的方法已停止工作。
e2 99 aa e2 97 99
通过了。某种unicode代码点?我确实看到字符在命令行中输入。有什么建议么?
Use legacy console
复选框,则可以得到旧的行为。但是在高分辨率显示器上看起来确实很糟糕。
(echo New-line detected rigghhhtt ◙^<--- HERE!) > CON
圆括号是可选的。这是您可以执行此操作的更可靠的示例(AND回车现在可以正常工作,并且完全独立!):i.imgur.com/qqN37PH.png
在扩展Amit的答案(/superuser//a/1132659/955256)时,我找到了一种无需使用旧版控制台即可以任何字体进行处理的方法。
您需要做的只是简单地用alt-10个字符回显该行,然后将其重定向到con
,这样就可以了!
例如,给定:
(在Echo New-line中检测到rigghhhtt◙^ <---这里!)> CON
编辑:有趣的事实,看来您可以像这样将重定向放在开头:
> CON echo新行检测到rigghhhtt◙^ <---在这里!
奇怪吗?
您将获得以下输出:
New-line detected rigghhhtt
<-- HERE!
(圆括号是可选的。)
这是一个更强大的示例,说明您可以使用此AND回车返回现在完全独立地工作:
最好的是,如果您也重定向到文件,这将起作用!
(只需更改> CON
为> desired_output_file.txt
请享用!
^的输出可保存
set br= ^
<</br (newline)>>
<</br>>
例:
@echo off
setlocal enableExtensions enableDelayedExpansion
rem cd /D "%~dp0"
rem //# need 2 [/br], can't be saved to a var. by using %..%;
set br= ^
set "t=t1!br!t2!br!t3"
for /f "tokens=* delims=" %%q in ("!t!") do (
echo %%q
)
:scIn
rem endlocal
pause
rem exit /b
; 输出:
t1
t2
t3
Press any key to continue . . .