Добрый день.

Возникла следующая задача. Необходимо при определенных условиях скопировать mp4 файл из одного места в другое. bat не используется в силу того, что необходимо из imacros (js) передать имя файла.
Я вижу два способа:
1) попытаться "скачать" файл:

скрытый текст

Выделить код

Код:

ONDOWNLOAD FOLDER=d:\\temp\\ FILE=* WAIT=YES');
URL GOTO=file:///123.mp4


не знаю, что бы из этого получилось, но что-то мне подсказывает, что это должно сработать. Проблема в том, что FF открывает файл во вкладке, не предлагая его скачать. Естественно, в "Applications" ставил и "Always ask", и "Save file" - безрезультатно. Также в "about:config" поковырял "media.windows-media", нашел "media.windows-media-foundation.allow-d3d11-dxva", поставил "false", ничего не изменилось. Используется Firefox Portable 52.0.2.

2) копирование через командную сроку. Через нее прекрасно работает "copy", "robocopy", однако при вызове

скрытый текст

Выделить код

Код:

var prgpath='C:\\Windows\\system32\\cmd.exe';
//с аргументами
var args = ['copy', 'source\\folder\\file.mp4', 'dest\\folder'];


не воспринимаются аргументы.
код публикуется в тегах code внутри спойлера

Возможно ли решить этот вопрос или придется придумать костыли, типа установки php, который сможет произвести копирование? :)

InfSub

Codepg пишет: придется придумать костыли, типа установки php, который сможет произвести копирование?

*набираю из под стола* ;)

okkamas_knife
моих трех классов церковно-приходской не хватает для понятия азов. При запуске получаю "IO is not defined", что не очень-то удивило, попробовал следующее:

скрытый текст

Выделить код

Код:

var io = Components.classes["@mozilla.org/network/io-service"].getService (Components.interfaces.nsIIOService);


код публикуется в тегах code внутри спойлера
получил

Components.classes['@mozilla.org/network/io-service'] is undefined

Не натолкнете, с какой стороны к этому зверю подойти?

InfSub

Codepg

скрытый текст

Выделить код

Код:

var io = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);

karginaolga
Скрипт:

скрытый текст

Выделить код

Код:

var io = Components.classes["@mozilla.org/network/io-service;1"].getService(Components.interfaces.nsIIOService);
var file = io.newFile("путь\\до\\файла", "файл.mp4");
var destination = io.newFile("куда\\копируем", "");
file.copyTo(destination, "");


выдает теперь следующее: "io.newFile is not a function" :angry:

P.S. Час назад мне удалось решить вопрос при помощи командной строки, путем добавления "/C" в аргументы. Мало ли, кому будет полезно, строка будет выглядеть так:

скрытый текст

Выделить код

Код:

var args = ['/C', 'copy', 'source\\folder\\file.mp4', 'dest\\folder'];


код публикуется в тегах code внутри спойлера
замечание

P.P.S. Несмотря на PS хотелось бы понять, как работает IO :)


InfSub