首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用bat文件获取和删除redis数据

使用bat文件获取和删除redis数据
EN

Stack Overflow用户
提问于 2019-11-12 06:48:43
回答 1查看 424关注 0票数 0

我已经创建了一个bat文件,用于删除Redis DB中的特定数据。我有叠码

代码语言:javascript
运行
复制
title:Redis Service
@echo off
cls
ECHO "Redis cache clearing started"
ECHO "fetching started method 1"
redis-cli -h 192.134.56.67 -p 6379 -a MyPassword keys "My.Key.*"
ECHO "fetching started method 2"
FOR /F "tokens=* USEBACKQ" %%F IN (`redis-cli -h 192.134.56.67 -p 6379 -a MyPassword keys "My.Key.*"`) DO (
SET var=%%F
)
ECHO "fetching completed"
ECHO %var%
ECHO "deletion started"
FOR /F "tokens=* USEBACKQ" %%F IN (`redis-cli -h 192.134.56.67 -p 6379 -a MyPassword del %var%`) DO (
SET var2=%%F
)
ECHO %var2%
ECHO "deletion completed"
pause

我得到了这样的输出

代码语言:javascript
运行
复制
"Redis cache clearing started"
"fetching started method 2"
 1) "My.Key.2554"
 2) "My.Key.280017"
 3) "My.Key.224"
 4) "My.Key.23730"
 5) "My.Key.2072545"

"fetching completed"
"fetching started method 2"
My.Key.2072545
"deletion started"
1
"deletion completed"

我需要从Redis命令输出中删除整个数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-12 07:04:31

第一个循环set的变量var的每一次运行都有一个新的值,因此循环的每一次迭代都会将新值重新赋值给var。因此,当您退出该循环时,var只有一个值,在本例中是My.Key.20725545,使用一个循环,不要像需要delayedexpansion那样分配变量。所以您需要这样的操作。Note!! I没有redis,所以我不能测试这个结果,这只是一个例子:

代码语言:javascript
运行
复制
@echo off & cls
title :Redis Service
echo "Redis cache clearing started"
for /F "tokens=*" %%f IN ('redis-cli -h 192.134.56.67 -p 6379 -a MyPassword keys "My.Key.*"') do (
 echo "%%~f"
 redis-cli -h 192.134.56.67 -p 6379 -a MyPassword del "%%~f"
)
echo deletion completed
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58813393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档