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

Оцените статью