Cmd символ переноса строки

Еще одним полезным свойством символа "^" является перенос строк.
То есть, если текст вашей команды слишком длинный, то это делает сценарий менее наглядным и удобочитаемым.
Символ ^ должен быть последним в строке и означает, что следующая строка является продолжением текущей.
Возможно разделение более, чем на две строки. Предел не проверял ).
В официальной документации описание такого действия знака ^ не нашел.

Опытным путем установил, что если в команде FOR такой разрыв поставить после IN и перед круглой скобкой, то произойдет ошибка разбора. Возможен разрыв строки команды FOR перед IN. При этом в следующей строке IN должен следовать с первой позиции.

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

Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).

Есть следующий bat файл с кодом

for /l %%i in (1,1,10) do echo >%%i.php

Нужно сделать чтобы он создавал файлы вот так
for /l %%i in (1,1,10) do echo
>%%i.php
Но так попробовал не работает.

  • Вопрос задан 26 дек. 2018
  • 1170 просмотров

Знак ^ = экранирует спец символы
Если надо пустую строку, то можно сделать так echo. >> %%i.php (т.е. точка на конце echo)
В первой команде используется > чтобы перезаписать файл при повторном вызове, в отличие от >> который добавляет данные без перезаписи

Я вот пытался с трех строк тоже сделать

А можете подсказать, как сделать с переменными
типа
1=какой то текст 1
2=какой-то текст 2
3=какой-то текст 3

и потом писать что-то вроде echo %1%

Надеюсь я правильно объяснил))) мб нужна команда set

А можете подсказать, как сделать с переменными
типа

да через SET, по-моему так (у меня линукс не могу проверить)

То есть нужно получить в этом файле текст в столбец
Раз
Два
Все txt файлы лежать в одной папке, но разбросаны по подпапкам.

Заранее спасибо за ответ!

Пока что найдено решение на VBS скрипт. В принципе все работает. Но можно ли все таки на BAT это реализовать?

Пример VBS скрипта если вдруг кто столкнется с подобной задачей

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("1.txt", 1)
setFile = f.ReadAll
f.Close
str="$"
str2=vbcrlf
setFile = Replace(setFile, str, str2)
Set f = fso.OpenTextFile("1.txt", 2)
f.Write setFile
f.Close
Set f = Nothing
Set fso = Nothing

for /r "%folder%" %%i in (*.txt) do (
del "%tmpfile%" /q 2>nul
for /f "usebackq delims=" %%j in ("%%i") do call :parseLine "%%j" "%tmpfile%"
move "%tmpfile%" "%%i"
)

1
:parseLineNext
for /f "tokens=1,* delims=$" %%i in ("%str%") do (
echo %%i>>%2
set str=%%j
)
if not "%str%"=="" goto parseLineNext
exit /b


[an error occurred while processing the directive]
Карта сайта