Экранирование в командной строке: &&, % и пр. Topic is solved

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
Vladimir.
Posts: 23
Joined: Mon 20 Apr, 2020 11:50
Has thanked: 8 times

Экранирование в командной строке: &&, % и пр.

Post by Vladimir. »

Добрый день.
По Ctrl+G формируется bat'ник, внутри меню "Применить команду" строка типа:

Code: Select all

@echo команда1 >>run.bat && @echo команда2 >>run.bat
В итоге, в файле run.bat получаем набор действий для всех выделенных файлов.

Code: Select all

команда1 для первого файла
команда2 для первого файла
команда1 для второго файла
команда2 для второго файла
.....
Возникла проблема, хотелось бы добавить условие, которое должно срабатывать при успешном выполнении "команда1", оно должно выглядить в итоговом bat файле так

Code: Select all

команда1 && команда1.1
или

Code: Select all

команда1
if %errorlevel% 0 команда1.1
так вот, никак не могу понять, как это сделать в строке ввода меню "Применить команду". Что %, что && спецсимволы, и никак не могу найти как их экранировать.
Last edited by HaRT on Wed 03 May, 2023 11:19, edited 2 times in total.
Reason: Уточнён Заголовок Темы
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

CtrlG + Экранирование && или %

Post by buniak_a_h »

Vladimir. wrote: Mon 01 May, 2023 14:55 Ctrl+G формируется bat'ник
Вы уверены? А как объяснить, например, если в строке указано нечто с префиксом, который понимает FAR? edit: или lua:@, например?
Vladimir.
Posts: 23
Joined: Mon 20 Apr, 2020 11:50
Has thanked: 8 times

CtrlG + Экранирование && или %

Post by Vladimir. »

А Вы проверьте, я же Вам и команду написал. Просто скопировать и вставить.

Code: Select all

@echo команда1 >>run.bat && @echo команда2 >>run.bat
Но, да, я понимаю, что у меня частный случай её использования.

Насчёт edit: или lua:@, честно говоря, вообще не понимаю, что Вы хотели этим сказать. Куда копать?
Last edited by Vladimir. on Mon 01 May, 2023 15:18, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

CtrlG + Экранирование && или %

Post by buniak_a_h »

Vladimir. wrote: Mon 01 May, 2023 15:16 не понимаю, что Вы хотели этим сказать
Отметьте несколько текстовых файлов, Ctrl+G, команду задайте edit:!.!. В результате в редакторе откроются на редактирование отмеченные файлы. bat'ник так не умеет.
Vladimir. wrote: Mon 01 May, 2023 15:16 я же Вам и команду написал
написанная Вами команда не требует обращения к командному процессору (cmd.exe, command.com), т.к. команду echo выполняет сам FAR. Так что это ничего не доказывает.
Vladimir.
Posts: 23
Joined: Mon 20 Apr, 2020 11:50
Has thanked: 8 times

CtrlG + Экранирование && или %

Post by Vladimir. »

Блин я понимаю, что там можно писать команду, которая применяется сразу к выделенным файлам.
Я же Вам сразу обозначил мой частный случай. Он явно не из Вашего кейса.
Зачем мне это? Не вижу, как это поможет в решении моей задачи.

Вы можете помочь в решении моей проблемы, обозначенной первоначально? Если да, то я буду очень благодарен.

P.S. Пока только приходит на ум F2 и передача списка фалов во внешний скрипт. Но вдруг можно решить проще!?
Yegor
Posts: 1326
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 32 times
Been thanked: 61 times

CtrlG + Экранирование && или %

Post by Yegor »

Не очень понял что вам нужно, но может:
echo Hello ^&^& world
Получите на экране:
Hello && world
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
Vladimir.
Posts: 23
Joined: Mon 20 Apr, 2020 11:50
Has thanked: 8 times

CtrlG + Экранирование && или %

Post by Vladimir. »

Вот, это то самое!
Спасибо громадное.
Last edited by Vladimir. on Mon 01 May, 2023 17:00, edited 3 times in total.
Vladimir.
Posts: 23
Joined: Mon 20 Apr, 2020 11:50
Has thanked: 8 times

CtrlG + Экранирование && или %

Post by Vladimir. »

Yegor wrote: Mon 01 May, 2023 16:28 Не очень понял что вам нужно, но может:
echo Hello ^&^& world
Получите на экране:
Hello && world
Можно узнать, откуда Вы узнали про ^? В хелпе я нашёл только про двойное экранирование !!.
Last edited by Vladimir. on Mon 01 May, 2023 17:23, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

CtrlG + Экранирование && или %

Post by buniak_a_h »

Vladimir. wrote: Mon 01 May, 2023 17:22 В хелпе я нашёл только про двойное экранирование !!.
Похоже, экранирование ^ не имеет отношения к ФАРу. Сделал bat-файл

Code: Select all

@echo off
echo Hello ^&^& world
pause>nul
прекрасно выводит Hello && world. Без ФАРа.
На самом деле меня тоже интересует, откуда Yegor это узнал; я пока не нашёл…
Last edited by buniak_a_h on Mon 01 May, 2023 18:00, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

CtrlG + Экранирование && или %

Post by HaRT »

buniak_a_h wrote: Mon 01 May, 2023 17:49 меня тоже интересует, откуда Yegor это узнал
Даже если не читали об этом ранее в каком-нибудь учебнике, ответ гуглится.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

CtrlG + Экранирование && или %

Post by zg »

про ^ есть где-то в справке cmd.exe.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

CtrlG + Экранирование && или %

Post by buniak_a_h »

zg, 2useven10! Я очень надеялся, что по echo /? можно получить нужную инфу. Ну, или хотя бы по cmd /? можно получить ссылку на полную документацию. Увы!
В те времена, когда я читал учебники, cmd.exe ещё не было. Я думал, что всё важное можно получить по /? - опять увы :-(
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

CtrlG + Экранирование && или %

Post by 2useven10 »

buniak_a_h, Не надо надеяться,
Ищите, и обрящете
это задолго до гугла и вашей учёбы.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

CtrlG + Экранирование && или %

Post by Taciturn »

Открыл cmd.exe.mui, просмотрел все вхождения ^ — нигде про экранирование не написано. Аналогично сделал с COMMAND.COM — тоже ничего. Видимо это сакральное знание, которое запрещено размещать во встроенной документации и полагается узнавать исключительно из внешней.
Post Reply

Return to “Нужна помощь”