尝试一下:
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 /f
? for
是否不只是获取反引号命令的输出并将其分配给%a
?