Используя командный файл generator.bat
:
REM Test file creator
SETLOCAL
ECHO Test generated file! >>testfile.txt
ECHO assign var1=0>>testfile.txt
ECHO assign var1=1>>testfile.txt
ECHO assign var1=two>>testfile.txt
ECHO assigned var1>>testfile.txt
ENDLOCAL
Я могу сгенерировать файл: testfile.txt
Test generated file!
assign var1=
assign var1=two
assigned var1
Как я могу добавить какой-то символ-разделитель, чтобы эти строки печатались правильно? Предполагаемый выходной файл testfile.txt
будет:
Test generated file!
assign var1=0
assign var1=1
assign var1=two
assigned var1
Добавление пробела перед >>
, т.е.:
ECHO assign var1=0 >>testfile.txt
Просто приводит к следующему:
assign var1=0
Где на самом деле стоит значение 0
(добавлен пробел). Это проблема, поскольку я использую аналогичный генератор для создания другого пакетного файла, а дополнительные пробелы меняют значение значения.
У вас есть два варианта:
вы можете переместить перенаправление в начало строки
>>testfile.txt ECHO assign var1=0
>>testfile.txt ECHO assign var1=1
или вы можете поместить все в круглые скобки, поскольку у вас есть несколько перенаправлений на один и тот же файл.
(
ECHO Test generated file!
ECHO assign var1=0
ECHO assign var1=1
ECHO assign var1=two
ECHO assigned var1
)>>testfile.txt
Если это начало файла или его полное содержимое, во втором примере вы можете использовать >
вместо >>
. Хотя технически так и должно быть 1>
. Кроме того, поскольку вы странно восклицаете первую строку, вам следует убедиться, что отложенное расширение не включено.
В дополнение к методам из существующего ответа по отдельности вы можете сделать это, как в следующих примерах:
(Echo assign var1=0) 1>>"testfile.txt"
,(Echo assign var1=1) 1>>"testfile.txt"
.