Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Перевод каретки на новую строку (http://forum.oszone.net/showthread.php?t=290065)

sov44 28-10-2014 08:24 2421349

Перевод каретки на новую строку
 
Есть конструкция (кусок кода)
Код:

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 2421371

sov44, «08H» — не «символ перевода каретки», а «Backspace», возврат на один символ.

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

Цитата:

Цитата sov44
В качестве ликбеза, какие ещё такого типа символы существуют для командной строки? »

4 Управляющие символы. Работают в консоли командной строки, понятно, далеко не все, это не терминал.

Цитата:

Цитата sov44
Можно-ли разукрасить код возврата errorlevel? »

В принципе, можете попробовать: CMD/BAT: Вывод разноцветного текста — CMD/BAT — Коллекция скриптов и идей — Серый форум (здесь, кажись,тоже было что-то подобное, но не найду).

sov44 28-10-2014 10:14 2421392

Iska, осталось понять, как набрать в батнике «08H» или к примеру «07H»
Цитата:

Цитата Iska
Для вывода пары символов CrLf достаточно команды «echo.» »

Уже пробовал. Не срабатывало, поэкспериментирую ещё.

Iska 28-10-2014 11:21 2421421

Цитата:

Цитата sov44
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 …».
↨ Изображение ↨

yurfed 28-10-2014 11:28 2421422

Цитата:

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

Спасибо, не знал :) Интересно.

Iska 28-10-2014 11:45 2421433

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

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

sov44 28-10-2014 12:10 2421439

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

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

Iska 28-10-2014 13:42 2421496

Цитата:

Цитата sov44
Текст вставил, но символы не увидел. »

Это печально. У меня под Mozilla Firefox нормально с этого форума копирует. Могу вложить файл в архиве, если есть ещё потребность. Выкладывать?

Можете ещё включить в настройках редактора отображение пробельных символов:
Скрытый текст
Код:

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


Удобственно.

Цитата:

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

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

yurfed 28-10-2014 14:01 2421520

Цитата:

Цитата Iska
Смотришь и думаешь — ну, как я раньше-то на это не обратил внимания, элементарно же. »

Так всегда. И что я раньше про это не знал :dont-know

sov44 28-10-2014 14:02 2421522

Цитата:

Цитата Iska
Могу вложить файл в архиве, если есть ещё потребность. Выкладывать? »

Спасибо. Попытаюсь сам разобраться.

yurfed 28-10-2014 14:10 2421531

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

Iska 28-10-2014 14:12 2421535

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

Цитата:

Цитата sov44
Спасибо. Попытаюсь сам разобраться. »

Э… «Спасибо, выкладывайте» или «Спасибо, не надо»?

yurfed 28-10-2014 14:32 2421546

Цитата:

Цитата Iska
оттого и изобретаем паллиативы »

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

sov44 28-10-2014 14:36 2421550

Цитата:

Цитата Iska
Э… «Спасибо, выкладывайте» или «Спасибо, не надо»? »

Спасибо, пока не надо. :)

Vector_om 08-12-2020 20:11 2942342

Цитата:

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

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

Iska 08-12-2020 20:39 2942345

Vector_om, «да шо ему сделается»™ ;).


Время: 21:01.

Время: 21:01.
© OSzone.net 2001-