В настоящее время я пишу панель запуска приложений для Windows, используя Electron JS и Javascript для windows. Я хочу заблокировать несколько экземпляров одного открытия приложения. Для этого я написал пакетный скрипт, который проверяет, запущен ли процесс и, если он есть, распечатывает сообщение «Программа работает», а если нет, выдает «Программа не работает».
Пакетный скрипт
echo off
tasklist /FI "IMAGENAME eq chrome.exe" 2>NUL | find /I /N "chrome.exe">NUL
if "%ERRORLEVEL%"=="0" echo Program is running
if "%ERRORLEVEL%"=="1" echo Program is not running
Когда я запускаю это через cmd.exe, он выдает мне правильный вывод, работает приложение или нет. Однако в Javascript мне всегда дают следующее:
Вывод
Ошибка: найти: '/ I': нет такого файла или каталога find: '/ N': нет такого файла или каталога
Ошибка: find: "chrome .exe": нет такого файла или каталога
Программа не запущена
Ребенок вышел с кодом 0
рендер. js
const { spawn } = require('child_process');
const bat = spawn('cmd.exe', ["/c", 'multiScript.bat']);
bat.stdout.on('data', (data) => {
console.log(data.toString());
});
bat.stderr.on('data', (data) => {
console.error(data.toString());
});
bat.on('exit', (code) => {
console.log(Child exited with code ${code});
});
Структура папки
projectfolder/
|-src/
| |-renderer.js (File that is trying to spawn the batch file)
| |-multiScript.bat (The bat file I am trying to execute)