Скопируйте содержимое файла изображения в буфер обмена с помощью gulp

Я пишу задачу gulp, чтобы сделать следующее:

  • Следите за изменениями в файле изображения
  • Если файл изображения изменился, скопируйте содержимое изображения в буфер обмена, чтобы я мог его вставить.

Примечание. Я работаю в Windows и использую nircmd.exe для копирования содержимого образа. У меня работает следующая командная строка:

nircmd.exe clipboard copyimage "G:\IMG\pic.png"

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

Мой gulpfile (пока):

var gulp = require('gulp'),
    watch = require('gulp-watch'),
    shell = require('gulp-shell'),
    run = require('gulp-run'),
    clipboard = require("gulp-clipboard"),
    myTerminal = require("child_process").exec,
    commandToBeExecuted = "./copy-to-clipboard.bat";

gulp.task('copy-to-clipboard', function () {
    require('child_process').spawn('cmd', ['/s', '/c', '"G:\\Git\\copy-to-clipboard\\copy-to-clipboard.bat"'], { 
      windowsVerbatimArguments: true
    });
});

gulp.task('default', function () {
    watch('watch/*.png','copy-to-clipboard');
});

Я пробовал gulp-shell, но так как это открывает терминал узла, nircmd.exe не распознается как внутренняя или внешняя команда.

Я также пробовал child_process (как spawn, так и exec), но, хотя я не получаю ошибок, содержимое все еще не находится в буфере обмена.

Есть ли способ проще или это просто невозможно?

Заранее спасибо!


person user791793    schedule 24.01.2015    source источник


Ответы (1)


Похоже, он пытается запустить его, если вы получаете

    nircmd.exe is not recognised as an internal or external command.

ошибка.

Я бы добавил nircmd.exe к вашему пути, чтобы исправить это. или в вашем файле bat вы можете сделать что-то вроде:

    c:\path\to\program\nircmd.exe 

это может исправить это.

Если вы собираетесь так часто использовать nircmd, я бы просто добавил его в ваш путь.

person meeple142    schedule 16.10.2015