Как выполнить командный файл в альтернативном потоке данных в Windows 7?

3816
Joseph Hansen

Обычно, после создания исполняемого файла в качестве альтернативного потока данных, например:

type exec_this.bat > C:\blank.txt:exe.bat 

можно просто сказать

start C:\blank.txt:exe.bat 

запустить исполняемый файл. В Windows 7 все, что мне кажется, это «Доступ запрещен». или «Система не может найти файл $ WHATEVER_THE_FILE_IS.»

Как я могу выполнить этот командный файл?

5
This seems like a bad idea. What's your use case? uSlackr 13 лет назад 0

1 ответ на вопрос

5
Joseph Hansen

Windows 7 молча удалила возможность выполнения чего-либо из ADS. Однако из командной строки DOS есть и другие параметры. Для командного файла вы можете выполнить построчно:

for /f "usebackq delims=φ" %i in (blank.txt:exe.bat) do %i 

(Имейте в виду, что это на самом деле не выполняет пакетный файл в своем собственном процессе, он просто читает и выполняет каждую строку из файла. φСимвол набирается с альтернативным кодом 2541. Вы хотите, чтобы разделитель был символом, который вы не хотели бы ' никогда не используйте в коде.)