Почему GetStandardStream в mshta не работает напрямую, но работает в for?

Попробуй это:

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//

Но если вы попробуете команду backquoted напрямую, вы получите ошибку.

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

Разве последняя команда не должна выводить ту же строку, но в стандартном выводе? Зачем мне for /f? Не for просто получите вывод команды с кавычками и назначьте ее %a?

0 ответов

Другие вопросы по тегам