Как установить значение переменной на основе оператора if в пакетном файле

Я пытаюсь присвоить значение переменной на основе оператора if-else в пакетном файле. Я ищу текстовый файл для строки, и если строка найдена, мне нужно присвоить определенное значение переменной.

Я использовал оператор if-else для присвоения значения, но после выхода из оператора if-else, когда я пытаюсь повторить переменную, я получаю значение как 0

@echo off

set "logfile=results.txt"
find /n /i "Orientation      : 0" "%logfile%" >nul
if %errorlevel% equ 0 (
    set org = "landscape"

) else (
    set org = "portrait"

)

echo %org%

Вывод для этого должен быть «пейзаж», я проверил, что строка существует в файле. По какой-то причине я получаю 0 в качестве вывода.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
759
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Удалите пробел вокруг знака равенства:

set org = "landscape"
set org = "portrait"

Работает! Спасибо

s_om 30.05.2019 02:09

В дополнение к уже предоставленному ответу где было выделено, что вы использовали пробелы по обе стороны от вашего символа =. Это означает, что вы устанавливаете, например:
org = "portrait".
Если вы не удалите эти пробелы, вам потребуется Echo:
%org %

, чтобы увидеть значение, которое вы установили, (и это также включает двойные кавычки).

Я бы дополнительно предложил вам использовать этот синтаксис:

@Echo Off
Set "logfile=results.txt"
Set "org = "
Find /I "Orientation      : 0" <"%logfile%" >Nul && (
    Set "org=landscape"
) || (
    Set "org=portrait"
)
Echo %org%

В качестве альтернативы, использование FindStr дает вам небольшой маневр с наличием или количеством пробелов, например. следующее все равно будет соответствовать:
Orientation:0
или
Orientation : 0

@Echo Off
Set "logfile=results.txt"
Set "org = "
FindStr /IRC:"Orientation[\ :]*0" "%logfile%" >Nul && (
    Set "org=landscape"
) || (
    Set "org=portrait"
)
Echo %org%

Проще говоря, условные операторы && и || фактически означают, если предыдущая команда была успешной и если предыдущая команда не удалась, соответственно.

спасибо, что вышли на ваш путь, чтобы дать оптимальный ответ! У меня есть дополнение, если вы не возражаете: ``` @echo off SET VAR=portrait IF "%VAR%" == "portrait" do ( SET /a height=1920; set /a width=1080; ) else do( set /a height=1080; set /a width=1920; ) echo %height% ``` это дает мне значение высоты как 1080, а не ожидаемое значение 1920. Не уверен, что здесь не так.

s_om 30.05.2019 07:29

@SourabhSriom, я предоставил решение для вашего комментария в качестве ответа на другой ваш вопрос.

Compo 30.05.2019 11:51

Другие вопросы по теме