Discussion forum for all Windows batch related topics.
Moderator: DosItHelp
-
batnoob
- Posts: 56
- Joined: 19 Apr 2017 12:23
#1
Post
by batnoob » 20 Apr 2017 15:25
I am working on a logic engine where you can run normal commands and also call a logic function. first I made an engine it could do the logic just fine, but it couldn't run other commands.
Code: Select all
@echo off
:begin
cls
title Logic engine v1.0
set /p "var=Type logic command>>"
call:LogEn
echo %var%
choice /m "Again?"
IF %ERRORLEVEL% == 1 (GOTO :begin) ELSE (IF %ERRORLEVEL% == 2 (EXIT /B))
:LogEn
if %var% (set "var=True"
) else (set "var=False")
GOTO:EOF
Then I tried to put that in an interactive console as a function and it didn't work anymore
Code: Select all
@echo off
title LIC_v1.0
:1
set /p "command=Type a command>>"
for %%g in (1) do (%command%)
goto :1
exit /b
:Engine arg
@echo off
setlocal
cls
set "var=%1"
call:LogEn
echo %var%
:LogEn
if %var% (set "var=True"
) else (set "var=False")
GOTO:EOF
endlocal
GOTO:EOF
can somebody help with this?
Thanks, BatNoob
-
Compo
- Posts: 600
- Joined: 21 Mar 2014 08:50
#2
Post
by Compo » 20 Apr 2017 16:21
What are you hoping to achieve with
IF variable SOMETHING ( you appear to be missing something!
-
batnoob
- Posts: 56
- Joined: 19 Apr 2017 12:23
#3
Post
by batnoob » 21 Apr 2017 08:41
you would type something like:
1==1
OR
defined %var%
-
aGerman
- Expert
- Posts: 4678
- Joined: 22 Jan 2010 18:01
- Location: Germany
#4
Post
by aGerman » 21 Apr 2017 09:47
I assume it should be something like that
Code: Select all
@echo off &setlocal
:loop
set /p "comp=Enter a comparison >> "
call :LogEn "%comp%" var
echo %var%
goto :loop
exit /b
:LogEn
if %~1 (set "%~2=True") else set "%~2=False"
exit /b
Example output:
Code: Select all
Enter a comparison >> a==a
True
Enter a comparison >> a==b
False
Enter a comparison >> defined path
True
Enter a comparison >> defined k
False
Enter a comparison >> 1 gtr 2
False
Enter a comparison >> 2 gtr 1
True
Enter a comparison >> exist C:\Windows\
True
Enter a comparison >> exist C:\nothing\
False
Enter a comparison >>
Steffen