在项目开发中,我经常需要逐个执行并多次重复执行的命令很少,如下所示
1) ----Open Command Prompt
2) cd "C:\Program Files\Redis"
3) redis-cli.exe -h 127.0.0.1 -p 6666
4) 127.0.0.1:6666> flushdb
5) 127.0.0.1:6666> select 1
6) 127.0.0.1:6666> flushdb
7) ----Close Command Prompt因此,我想创建一个批处理文件,如下所示
@echo off
cd "C:\Program Files\Redis"
redis-cli.exe -h 127.0.0.1 -p 6666
flushdb
select 1
flushdb但问题是,一旦执行进入redis-cli.exe,进一步的命令就会被阻止。它就像是
127.0.0.1:6666>_并等待命令。。我想知道如何将剩余的命令提供给这个redis-cli.exe并执行。
我尝试了run/cmd/start等命令,但没有用处。
我不能为这个问题建议一个更好的标题,因为我不知道如何称呼这种阻塞行为,甚至不知道它是否可能。如果有人有更好的名字,请更新,这样其他人就可以受益。
发布于 2020-04-26 10:21:04
如果有关于如何从命令行调用redis-cli.exe /?并让它立即执行命令序列的文档,您可以查看它。也许需要一些开关,比如来自cmd.exe的/C "mycommand1 & mycommand2 & mycommand3" (我不知道Redis CLI的任何细节)。
您观察到的“阻塞”是因为redis-cli本身打开了一个命令提示符来处理用户输入。就像telnet、wmic或diskpart一样。通常,您可以使用exit命令来保留这些提示。这也适用于cmd.exe本身。但不是为了telnet ;)对我来说,如何退出这件事是一个谜……
可以通过127.0.0.1:6666>前缀来识别“内部redis模式”,而不是通过默认的"cmd.exe“来显示通常的C:\your\path\here>提示符。
这个术语应该是“提示输入”或“从标准中读取”之后的“阻塞”。
我要说的是,你并没有走得太远,并且提供了一个很好的标题。
https://stackoverflow.com/questions/61307465
复制相似问题