setlocal enabledelayedexpansion
set "count=SELECT COUNT(*) FROM Events;| sqlite3.exe system_events"
echo %count%
set "sk=1000"
if %count% gtr %sk% (
echo Delete from Events where Id IN ( Select Id from Events limit 1^) ;| sqlite3.exe system_events"
pause
)
set "laik=%time:~0,2%:%time:~3,2%:%time:~6,2%"
echo INSERT INTO Events (Date, Time, Error_type) Values ("%Date%", "%laikas%", 0);| sqlite3.exe system_events
我有这个问题,在%count%变量中我得到数据库的记录数,在echo中工作正常它输出数字如132,但在if语句中我可以看到IF比较不是132而是
>if SELECT COUNT(*) FROM Events;|sqlite3.exesystem_even
ts gtr 1000 (
以这种方式IF语句不起作用,我的问题是什么? :)谢谢:))
答案 0 :(得分:1)
问题不在if
,而在set
。从命令检索输出并将其分配给变量的方法是使用for /f
命令
for /f "delims=" %%a in ('
cmd /q /c "echo select count(*) from Events;" ^|sqlite system_events
') do set "count=%%a"
答案 1 :(得分:0)
它不是SQLite功能的一部分。但是有一些解决方法。见link.