Войти

Показать полную графическую версию : [решено] Перевод каретки на новую строку


sov44
28-10-2014, 08:24
Есть конструкция (кусок кода)
Find /i "%1" "Inst_Update.txt">nul && (
for /f "tokens=1-2 delims=--" %%x in ('type "Inst_Update.txt" ^|find /i "%1"') do (
if %%y lss %5 (<nul set /p x= * Обновляется %1& goto inst) else (<nul set /p x= Обновление не требуется %1)
)) || (<nul set /p x=* Устанавливается %1& goto inst)
goto :eof

pause
exit /b

:: непосредственно сама установка
:inst
Updates\%1-%2-%3-%4 /qn /norestart
<nul echo %errorlevel%
goto :eof


которая в цикле ставит приложения. Проблема в том, что весь вывод идёт в одну строку. Как набрать и после <nul echo %errorlevel% вставить символ перевода коретки 08H на новую строку?

В качестве ликбеза, какие ещё такого типа символы существуют для командной строки? Можно-ли разукрасить код возврата errorlevel?

Iska
28-10-2014, 09:20
sov44, «08H» — не «символ перевода каретки», а «Backspace», возврат на один символ.

Для вывода пары символов CrLf достаточно команды «echo.» (именно с точкой, сразу, без пробела, вослед «echo»).

В качестве ликбеза, какие ещё такого типа символы существуют для командной строки? »
4 Управляющие символы (https://ru.wikipedia.org/wiki/ASCII#.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D1.8F.D1.8E.D1.89.D0.B8.D0.B5_.D1.81.D0.B8.D0.BC.D0.B2.D0 .BE.D0.BB.D1.8B). Работают в консоли командной строки, понятно, далеко не все, это не терминал.

Можно-ли разукрасить код возврата errorlevel? »
В принципе, можете попробовать: CMD/BAT: Вывод разноцветного текста — CMD/BAT — Коллекция скриптов и идей — Серый форум (http://forum.script-coding.com/viewtopic.php?id=8805) (здесь, кажись,тоже было что-то подобное, но не найду).

sov44
28-10-2014, 10:14
Iska, осталось понять, как набрать в батнике «08H» или к примеру «07H»
Для вывода пары символов CrLf достаточно команды «echo.» »
Уже пробовал. Не срабатывало, поэкспериментирую ещё.

Iska
28-10-2014, 11:21
Iska, осталось понять, как набрать в батнике «08H» или к примеру «07H» »
В редакторе Far Manager'а, коим я пользуюсь, нет ничего проще — посредством «Ctrl-Q»:
╔══════════════════════════════════════════════ Помощь - FAR ══════════════════════════════════════════════╗
║ Редактор ║
╟─────────────────────────────────────────────────────────────────────────────────────────────────── ───────╢
║ F11 Вызвать меню "Команды плагинов" ▲
║ Alt-F11 Показать историю редактирования ░
║ Alt-BS, Ctrl-Z Отмена действия (Undo) ░
║ Ctrl-Shift-Z Повтор действия (Redo) ░
║ Ctrl-L Запретить модификацию редактируемого текста ░
║ Ctrl-O Показать пользовательский экран ░
║ Ctrl-Alt-Shift Временно показать пользовательский экран (работает до тех пор, пока удерживаем ░
║ эти клавиши) ░
║ Ctrl-Q Рассматривать следующую комбинацию клавиш как код символа ░
║ ПравыйCtrl-0..9 Установить закладку 0..9 в текущей позиции ░
║ Ctrl-Shift-0..9 Установить закладку 0..9 в текущей позиции ░
║ ЛевыйCtrl-0..9 Перейти к позиции закладки 0..9 ░
║ Shift-Enter Вставить в позицию курсора имя текущего файла на панели. ░
║ Ctrl-Shift-Enter Вставить в позицию курсора имя текущего файла на пассивной панели. ░
║ Ctrl-F Вставить в позицию курсора полное имя редактируемого файла. ░
║ Ctrl-B Спрятать/Показать линейку функциональных клавиш ░
║ Ctrl-Shift-B Спрятать/Показать статусную строку ░
║ ░

«0x08» — «Ctrl-Q», «Ctrl-H» («H» — восьмая буква английского алфавита, посему «Ctrl-H» в консоли вводит символ с кодом «0x08»); «0x07» — соответственно «Ctrl-Q», «Ctrl-G» («G» — седьмая буква английского алфавита, посему «Ctrl-G» в консоли вводит символ с кодом «0x07»).

Вот как это может выглядеть (скопируйте код и вставьте в редактор Far Manager'а, поскольку визуально управляющие коды здесь не видны):
@echo off
setlocal enableextensions enabledelayedexpansion

title Press any key to continue...

<nul set /p sVar=Мама мыла раму
>nul pause
<nul set /p sVar=
>nul pause
<nul set /p sVar=Рому
>nul pause

echo.
echo.
echo Конец!

endlocal
exit /b 0

Здесь же можете увидеть и пример работы с «echo.» после «<nul set /p …».
http://i.imgur.com/K4BBrGx.png

yurfed
28-10-2014, 11:28
В редакторе Far Manager'а, коим я пользуюсь, нет ничего проще — посредством «Ctrl-Q»: »Спасибо, не знал :) Интересно.

Iska
28-10-2014, 11:45
yurfed, я давно убедился в том, что Far Manager, как и Microsoft Office, неисчерпаем: казалось бы — давно знаком, хорошо ориентируешься, знаешь почти наизусть, а нет-нет — да и выудишь что-то новое, казалось бы, лежащее на поверхности. Смотришь и думаешь — ну, как я раньше-то на это не обратил внимания, элементарно же.

Вот за это я его и люблю — что посредством него можно реализовать практически всё потребное в плане менеджмента файлов (для чего он, собственно, и предназначен). А уж в третьей версии, где «искаропки» теперь доступен полноценный входной ЯВУ Lua — так и вовсе… Дело осталось за малым — набраться решимости и переползти со второй на третью версию ;).

sov44
28-10-2014, 12:10
Iska, довольно интересный мануал. Однако Far Manager_ом никогда не пользовался, а только по старинке Total Commander :)
Текст вставил, но символы не увидел. Если набирать вручную «Ctrl-Q», «Ctrl-H», символы вижу.

Есть иной, чем Far Manager_ом набирать символы?

Iska
28-10-2014, 13:42
Текст вставил, но символы не увидел. »
Это печально. У меня под Mozilla Firefox нормально с этого форума копирует. Могу вложить файл в архиве, если есть ещё потребность. Выкладывать?

Можете ещё включить в настройках редактора отображение пробельных символов:
╔════════════════════════════ Редактор ═════════════════════════════╗
║ Преобразовывать табуляцию: ║
║ Не преобразовывать табуляцию ↓║
║ [ ] Постоянные блоки [x] Del удаляет блоки ║
║ [x] Сохранять позицию файла [x] Сохранять закладки ║
║ [x] Автоотступ [ ] Курсор за пределами строки ║
║ 4 Размер табуляции [x] Показывать полосу прокрутки ║
║ [x] Пробельные символы [x] Cлово под курсором ║
╟───────────────────────────────────────────────────────────────────╢
║ { OK } [ Отмена ] ║
╚═══════════════════════════════════════════════════════════════════╝
Удобственно.

Есть иной, чем Far Manager_ом набирать символы? »
Полагаю, наверняка есть. Но я специально не искал. Есть желание, попробуйте: SciTE, AkelPad, Notepad++ — я полагаю, стоит проверить.

yurfed
28-10-2014, 14:01
Смотришь и думаешь — ну, как я раньше-то на это не обратил внимания, элементарно же. »
Так всегда. И что я раньше про это не знал :dont-know

sov44
28-10-2014, 14:02
Могу вложить файл в архиве, если есть ещё потребность. Выкладывать? »
Спасибо. Попытаюсь сам разобраться.

yurfed
28-10-2014, 14:10
sov44, я не очень силён в различных скриптах, а тем более их языках, но разве уже \n не используется для перевода строки(каретки) в конце самой строки?

Iska
28-10-2014, 14:12
yurfed, так нет этого в пакетных файлах, оттого и изобретаем паллиативы, наподобие «<nul set /p …» :(.

Спасибо. Попытаюсь сам разобраться. »
Э… «Спасибо, выкладывайте» или «Спасибо, не надо»?

yurfed
28-10-2014, 14:32
оттого и изобретаем паллиативы »Есть такая штучка как http://www.editplus.com/ или http://www.ultraedit.com/ Про всякие Акеллы и Нотерады++, забыл как страшный сон. Поддержка кучи языков, да и ещё подсветка, настраивай как хочешь, просто подарок.
Они не бесплатные...., но если очень надо...:)

sov44
28-10-2014, 14:36
Э… «Спасибо, выкладывайте» или «Спасибо, не надо»? »
Спасибо, пока не надо. :)

Vector_om
08-12-2020, 20:11
В редакторе Far Manager'а, коим я пользуюсь, нет ничего проще — посредством «Ctrl-Q»: »

Вот это пример, так давно написан, но не потерян.
Спасибо.

Iska
08-12-2020, 20:39
Vector_om, «да шо ему сделается»™ ;).




© OSzone.net 2001-2012