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