explorer in cmd

问题描述 投票:0回答:1

I've been learning batch scripting so I came across pipes and I

如果这个工作。

tasklist | find "winword"

find "winword" Why does this not: cd

cd | explorer

我希望这条命令能在当前工作目录下打开explorer,作为... cd 无任何参数的情况下,输出当前目录和:

explorer %directory%

打开资源管理器,在 %directory%.

我这里是不是有什么地方做错了?

windows batch-file cmd pipe
1个回答
0
投票

STDINfind "blah" 指向(按 Ctrl+Z进入 结束提示)。) 然后输入 并按 进入;你会注意到这些文字 打印出来,所以有displayconsole输出;这是由 echo blahSTDOUT. 一根管子 将数据在 blahSTDOUT 并将其从左侧命令重定向至 STDIN| 为右边的命令。现在输入 命令提示符窗口,当然会弹出一个资源管理器窗口,但在命令提示符中会发生什么呢? 对,什么都没有,它不等待任何输入。STDIN. 所以,你可以管它,但它不会关心,因为它不读在

STDINexplorer. 事实上,GUI应用程序一般不会使用 STDINSTDOUT因为这些东西是为命令行应用程序准备的。还有一个例子:在命令提示符窗口中,输入 ;很明显会发生什么;然后输入 ; 会发生什么? 返回

当前echo C:\Windows 目录,但不属于 echo C:\Windows| dir. 为什么?dir 先看看情况:是的。 显示了当前目录的内容,而且它还能做到 C:\Windows 等待控制台的输入;所以在管道的右侧,它在接收数据时,在 dirSTDINdir 但它根本不在乎。你可以尝试使用 没有管子和有管子,输出的效果是一样的。STDIN 这里忽略了。dir "C:\some\other\folder" 这个例子也展示了控制台输入(STDIN

)和命令行参数:命令行中的路径。echo 就是这样一个论点,你不能用来自于 dirSTDIN. 要了解原因,你需要区分以下几点 解析时间dir "C:\some\other\folder" (当命令被解释器读取和解析时)和 运行时间 (当命令实际执行时):参数在解析时已经存在,而 STDIN 只有在 运行时间,这是后话。所以我们可以说他们只是从未见过面。这也反映了你的尝试的情况 : 后者接受命令行参数(无论如何都需要有可用的参数) 之前 执行,所以在解析时),但它并不关心

STDINcd | explorer. 还 STDOUT 数据来自 在执行前是不可用的(但只有在运行时才可以用),所以无论如何都会太晚到达。

© www.soinside.com 2019 - 2024. All rights reserved.