AIR - командный файл как аргумент CMD.exe - PullRequest
1 голос
/ 18 октября 2010

AIR не позволяет запускать файлы .bat напрямую как собственный процесс, поэтому, очевидно, я должен установить CMD.exe в качестве исполняемого файла startupInfo и передать файл .bat и его аргументы.

iне могу заставить его работать, так что я надеюсь, что это проблема синтаксиса.Вот мой код:

var testStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
testStartupInfo.executable = new File("C:\\WINDOWS\\system32\\cmd.exe");

var processArguments:Vector.<String> = new Vector.<String>();
processArguments[0] = "/c";
processArguments[1] = "\"C:\\Documents and Settings\\Administrator\\Desktop\\Test\\Test.bat\"";
processArguments[2] = "-testBatPeram1";
processArguments[3] = "-testBatPeram2";
processArguments[4] = "Peram3";
processArguments[5] = "C:\\Documents and Settings\\Administrator\\Desktop\\SaveText.txt";

testStartupInfo.arguments = processArguments;

var test:NativeProcess = new NativeProcess();
test.start(testStartupInfo);

пакетный файл и его параметры работают нормально, если я вручную пишу их в командной строке, поэтому я не знаю, почему ничего не происходит при запуске из AIR.

1 Ответ

1 голос
/ 04 января 2011

Хорошо, я думаю, что к настоящему моменту (через 3 месяца) вы поняли, что это не работает, потому что ваш путь к файлу bat содержит пробелы.Вы нашли какой-нибудь обходной путь, решение или что-то еще?

У меня есть хорошее приближение, которого вам может быть достаточно:

Вместо того, чтобы передавать параметры своей летучей мыши, попробуйте записать ее через ее стандартный ввод.Я имею в виду, вместо того, чтобы передавать параметры при вызове вашего bat, обрабатывать эту информацию как переменную, читаемую при исполнении.

...