进入阻塞模式后执行.bat cmd命令

w3nuxt5m  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(708)

在项目开发过程中,我经常需要一个接一个地执行并重复多次的命令很少

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等命令,但没用。
我无法为这个问题提供更好的标题,因为我不知道如何称呼这种阻塞行为,甚至不知道它是否可能。如果有人有更好的名字,请更新,这样其他人可以受益。

v7pvogib

v7pvogib1#

你可以查一下 redis-cli.exe /? 如果有任何关于如何从命令行调用它并让它立即执行命令序列的文档。也许需要一些改变,比如 /C "mycommand1 & mycommand2 & mycommand3" 如cmd.exe所知(我不知道有关redis cli的任何细节)。
你观察到的“阻塞”是因为 redis-cli 打开命令提示符本身以处理用户输入。很像一个 telnet 会做什么或做什么 wmic 或者 diskpart . 通常,您可以将这些提示留给 exit 命令。这也适用于 cmd.exe 它自己。但不适用于telnet;)对我来说,如何从那件事上戒掉是个谜。。。
“内部redis模式”由 127.0.0.1:6666> 前缀而不是通常的 C:\your\path\here> 由默认的“cmd.exe”提示。
在“提示输入”或“从标准中读取”之后,该术语将是“阻塞”。
我会说,你离得不远,提供了一个像样的头衔。

相关问题