gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:40:14 28 4
gpt4 key购买 nike

我创建了一个bat文件,用于从Redis DB中删除特定数据。我有以下代码

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

我得到这样的输出

"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 命令输出中删除整个数据。

最佳答案

每次运行第一个循环都会设置的变量var为新值,因此循环的每次迭代都会将新值重新分配给变量。因此,当您退出该循环时,var 只有一个值,在本例中为 My.Key.20725545 相反,请使用一个循环,不要像您那样分配变量那么就需要delayedexpansion。所以你需要这样的东西。 注意!!我没有redis,所以我无法测试这个结果,它只是一个示例:

@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

关于windows - 使用bat文件获取和删除redis数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58813393/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com