Я использую модуль Node FFI и пытаюсь запустить задачи синхронизации в Windows. Я могу успешно выполнить задачу, используя следующий код.Выполнение синхронных задач с использованием node.js на окнах
var ffi=require('ffi')
var nativeC = new ffi.Library("Kernel32", {
"WinExec": ["int32", ["string"]]
});
nativeC.WinExec('ls -lrt');
Я полагаю, что это способ выполнения синхронизации задач, но этот код всегда завершается после 1-го «Ls -lrt» команды; если я подключу еще несколько команд, они не сработают. Итак, есть ли функция обратного вызова здесь, в модуле FFI или каким-то другим способом я могу связать команды в node.js в Windows, чтобы они выполнялись синхронно, один за другим.
[команду ls] (http://linux.die.net/man/1/ls) обычно не доступен в Windows [за пределами PowerShell] (http://technet.microsoft.com/en-us/library/hh849800.aspx) (и это не распознает опции -lrt'). Работает ли команда в 'cmd.exe'? Для нескольких пользователей? –
Итак, я использую Git bash, поэтому я могу использовать ls, я думал о публикации этого, так что жаль, что я этого не сделал. – anonymous123
Попробуйте 'nativeC.WinExec ('bash -c" ls -lrt "');'. Даже если вы используете 'bash' для выполнения сценария, [' WinExec() ', похоже, не использует его] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms687393 .aspx) (обратите внимание на его второй аргумент). –