Windows批处理中Bash的" - "相当于什么?

Isi*_*ows 1 windows bash cmd batch-file

在Bash中,变量 - 表示命令的stdin,对管道命令非常有用.我想知道Windows批处理文件中是否存在等效文件,我似乎无法找到答案.

这是我在绝对必要时传统上所做的事情(而且if它是最有用的陈述):

<command> | set /p tmpvar=
if "%tmpvar%"=="whatever" rem stuff
Run Code Online (Sandbox Code Playgroud)

我觉得做一些像Bash你可以做的事情会更快更容易.这是Bash中的一个等效脚本,我想要一些比Windows批处理更简单的东西(不需要DOS兼容性).

<command> | if ("-" == "whatever" ) # stuff
Run Code Online (Sandbox Code Playgroud)

是否有比上面第一个例子更简单的东西?这会让事情变得容易多了.

Fre*_*Foo 5

在Bash中,变量 - 表示stdin

它实际上没有.-作为标准输入/输出的简写是Unix命令中的约定,但命令本身解释它; shell与它无关.echo -只是打印一个破折号.

DOS/Windows中与此约定最接近的是特殊文件名CON,它被解释为控制台.我不认为它对管道有帮助 - 但是在Unix上,命令本身应该有一些方法告诉他们从标准输入读取.