为什么mshta中的GetStandardStream直接失败,但可以在for中工作?

时间:2018-07-10 09:59:46

标签: javascript cmd hta

尝试一下:

for /f "usebackq delims=" %a in (`mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write('Hello World');close()"`) do @echo //%a//

或者这个:

mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write('Hello World');close()" | for /f "delims=" %a in ('findstr "^"') do @echo //%a//

你得到

//Hello World//

但是,如果直接尝试使用反引号命令,则会出现错误。

mshta "javascript:new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write('Hello World');close()"

后面的命令不是在标准输出中输出相同的字符串吗?为什么需要for /ffor是否不只是获取反引号命令的输出并将其分配给%a

0 个答案:

没有答案