Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2735
Благодарности: 1699

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png я2104290941.png
(18.4 Kb, 23 просмотров)

Цитата epoddubniy:
c:\users\admin>set stroka=findstr "Ended" D:\archive\1.txt
c:\users\admin>echo %stroka%
Ended : 22 апреля 2021 г. 14:05:46 »
Это что-то из разряда фантастики.
Как Вы изобразили, нельзя переменной так в лоб присвоить результат выполнения команды. Я повторил в командном окне Ваши кунштюки и получил ожидаемый результат в скриншоте. Переменная
%stroka%
в Echo раскрывается в строку
findstr "Ended" D:\archive\1.txt
а применённая как команда - вызывает исполнение команды.
Вся беда в том, что есть определённые правила написания командных файлов, правила дорожного движения, законы природы, и изобретать свои - увлекательно, но контрпродуктивно.
Попробуйте:
Код: Выделить весь код
If 1 2 3==1 2 3 Echo kuku
Получите
Код: Выделить весь код
Непредвиденное появление: 2.

Z:\>If 1 2 3==1 2 3 Echo kuku
Формат IF при сравнении строк:
If строка1==строка2 действие
В этом примере строка1 это 1, далее нет операции == и зачем-то появляется 2, что с синтаксисом If не вяжется.
Корректно написать
Код: Выделить весь код
If "1 2 3"=="1 2 3" Echo kuku
Здесь строка1 - это "1 2 3", строка2 - это "1 2 3" и сопоставление строк происходит корректно.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:10, 29-04-2021 | #8