“\n”在 Windows 命令行中未被正确识别

"\n" is not being recognized properly in Windows command line

由于格式限制,我正在尝试发出需要换行的命令。

我需要将文件提交到 CVS 存储库,但存储库有一个限制,要求包含以下格式的消息。

Change #: <number>
Description: <description>

用于提交文件的命令是:

cvs commit -m "Change #: <number>\nDescription: <description>" <filename>

然而,当我发出命令时,它似乎没有正确识别换行符,它没有说我给了它一个无效的更改 # 并且没有描述。

如何让它在不尝试发出两个单独的命令的情况下识别新行?

以这种格式尝试 powershell:

start-process -FilePath cvs.exe -ArgumentList "commit -m `"Change #:123 `nDescription:my description`""

我实际上是在尝试从 Perl 脚本调用此命令并找到了可接受的解决方法。由于某种原因,将该命令作为 system 命令调用似乎会失败,但如果您使用反引号调用它,它会正常工作。

# Fails
system 'cvs commit -m "Change #: <number>\nDescription: <description>" <filename>'

# Works
my $output = `cvs commit -m "Change #: <number>\nDescription: <description>" <filename>`

有趣的是,在使用 system 命令和反引号之间处理“\n”的差异似乎没有在任何地方记录。