Как записать блок текста (многострочный текст) в файл в Windows через пакетный файл без использования нескольких эхо-вызовов? - PullRequest
0 голосов
/ 09 февраля 2019

Я пытался записать несколько строк текста в текстовый файл в Windows, но не знаю, как это сделать.Кроме того, я много об этом искал в интернете, но все решения используют команду echo несколько раз.

Есть ли способ сделать это без многократного использования команды echo, например "cat" в Linux?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Вывод текста в одну строку должен быть возможен, хотя и не прост / элегантен.Вам понадобится еще несколько строк, чтобы сохранил символ новой строки , прежде чем использовать его

REM Creating a Newline variable (the two blank lines are required!)
set NLM=^


set NL=^^^%NLM%%NLM%^%NLM%%NLM%
rem just set once, and after that you can use %%NL%% to echo a new line everywhere you want
echo This is a sentence%NL%that's broke down into 2 lines.%NL%And this is another line.

Но зачем вам это?Это сделает строку очень длинной и никто не любит горизонтальную прокрутку .Это также возможно сделать в одной строке с несколькими эхо-вызовами

C:\Users>echo This is a very long line of text & echo that requires you to scroll horizontally. & echo And people HATE horizontal scrolls
This is a very long line of text
that requires you to scroll horizontally.
And people HATE horizontal scrolls

Таким образом, самый лучший способ - использовать powershell

C:\Users>powershell -Command "Write-Host This is`na multiline`ntext"
This is
a multiline
text

`n - это новая строка, потому что ` - это escape-символ в powershell

В качестве альтернативы просто используйте powershell's echo

C:\Users>powershell -Command "echo 'Each parameter to echo' '(A.K.A Write-Output)' 'will be printed on a separate line' 'like this'"
Each parameter to echo
(A.K.A Write-Output)
will be printed on a separate line
like this

Если разрешено использование нескольких строк, но только с одним эхозатем экранируйте новую строку с помощью ^ и оставьте следующую строку пустой (т. е. 2 строки кода для каждой выходной строки)

(echo Line 1^

Line 2^

Line 3) >file.txt
0 голосов
/ 09 февраля 2019
more >> filename.txt

Должен делать то, что вам нужно

...