0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 7
1

Запуск программы из скрипта .cmd

05.09.2018, 12:41. Показов 12105. Ответов 13
Метки нет (Все метки)

Здравствуйте форумчане, проблема такая: Есть программа fmedia, которую я запускаю из командной строки командой
Windows Batch file
1
start "" /min "%PUBLIC%\fmedia\fmedia.exe" --record --out=%PUBLIC%\record_sound\%nf%.ogg --format=int16 --channels=mono --rate=44100 --background --until=39600
и всё работает.
Если же я запускаю батник с этой командой, то ничего не происходит., а если я запускаю батник через командную строку то всё работает. Командную строку запускаю с обычными правами. Запуск скрипта с правами администратора так же не работает.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.09.2018, 12:41
Ответы с готовыми решениями:

Запуск программы из cmd
Добрый день. Скачал программу, которая парсит IIS файл и заливает мне данные в бд Программа...

Запуск скрипта через cmd.exe
Как правильно надо укомплектовывать CMD/BAT скрипт в метод...

Запуск программы через CMD
Здравствуйте, Простите возможно глупый вопрос, нигде не смог вычитать решения на него, у меня есть...

Запуск cmd с командой из программы
Добрый вечер! В программе потребовалось запустить cmd с командой. Сначала подумал, мне нужно что то...

13
3658 / 1974 / 774
Регистрация: 06.06.2017
Сообщений: 6,889
05.09.2018, 13:54 2
%nf% - это что?
0
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 7
05.09.2018, 14:23  [ТС] 3
это переменная, просто часть скрипта, вот скрипт целиком
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
rem распаковываем cab архив
if not exist %PUBLIC%\fmedia (mkdir %PUBLIC%\fmedia and
expand %PUBLIC%\fmedia.cab -F:*.* %PUBLIC%\fmedia)
rem формируем имя выходного файла
set tm=%time:~0,5%
rem удаление ведущих пробелов если время меньше 10
for /f "tokens=* delims= " %%a in ("%tm%") do set tm=%%a
set nf=%COMPUTERNAME%_%username%@%date%_%tm%
rem заменяем : на . (: - недопустимый символ в имени файлов)
set nf=%nf::=.%
rem ------------------------------------
 
rem проверяем есть ли выходная папка
rem если нет, то создаем ее и делаем ее скрытой
IF NOT EXIST %PUBLIC%\record_sound (mkdir %PUBLIC%\record_sound && attrib +h /D /S %PUBLIC%\record_sound)
rem -------------------------------------
 
rem записываем звук в файл
start "" /min "%PUBLIC%\fmedia\fmedia.exe" --record --out=%PUBLIC%\record_sound\%nf%.ogg --format=int16 --channels=mono --rate=44100 --background --until=39600
rem -------------------------------------
0
3658 / 1974 / 774
Регистрация: 06.06.2017
Сообщений: 6,889
05.09.2018, 14:35 4
С другими батниками проблемы нет?
Цитата Сообщение от Belousov94 Посмотреть сообщение
Запуск скрипта с правами администратора так же не работает.
Сценария. Права админа должны быть присвоены cmd при запуске, а не батнику.
0
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 7
05.09.2018, 15:10  [ТС] 5
нет с другими батниками проблем нет, из командной строки тоже с обычными правами запускаю, это только на параметр --record. Но просто команда из командной строки же работает, и батник когда запускаю из командной строки, то тоже всё работает
0
3658 / 1974 / 774
Регистрация: 06.06.2017
Сообщений: 6,889
05.09.2018, 15:32 6
А bat в OEM 866 сохранён?
Путь ключа --out в кавычки не помешает взять.
0
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 7
05.09.2018, 15:45  [ТС] 7
да в 866 OEM ковычки поставил, не помогло
0
Любознательный
2256 / 828 / 223
Регистрация: 10.03.2016
Сообщений: 1,914
05.09.2018, 16:39 8
Цитата Сообщение от Belousov94 Посмотреть сообщение
if not exist %PUBLIC%\fmedia (mkdir %PUBLIC%\fmedia and
expand %PUBLIC%\fmedia.cab -F:*.* %PUBLIC%\fmedia)
1. Обрамляйте код тегами WINBATCH, кнопка на панели WBATCH
2. вот эта Ваша строка (вернее две, но переносы почему-то с нарушением синтаксиса), не совсем из cmd, т.к. оператора and не существует.
её надо записать, как-то так:
Windows Batch file
1
2
3
4
if not exist "%PUBLIC%\fmedia\" (
    mkdir %PUBLIC%\fmedia
    expand %PUBLIC%\fmedia.cab -F:*.* %PUBLIC%\fmedia
)
0
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 7
05.09.2018, 18:01  [ТС] 9
да в целом эта часть меня не интересует, потому что здесь выполняется всё как нужно, конкретно не срабатывает последняя команда

Добавлено через 53 минуты
программа использует свои библиотеки, которые находятся в папке fmedia, может ли быть так, что запускаю команду из батника он не может обратиться к этим библиотекам
0
Любознательный
2256 / 828 / 223
Регистрация: 10.03.2016
Сообщений: 1,914
05.09.2018, 18:03 10
Цитата Сообщение от Belousov94 Посмотреть сообщение
да в целом эта часть меня не интересует
В целом, если Вы запускаете сценарий с ошибкой, причем в любом месте сценария, Вы можете не увидеть результат того, что записано в интересующей строке, т.к. батник просто не выполнится...
Если желаете проверить, то запускайте строку без посторонних команд, с предварительной проверкой наличия каталогов, т.е. так:
Windows Batch file
1
2
3
@echo off
set "PUBLIC=c:\здесь_какой-то_путь_желательно_без_пробелов"
start "" /d "%PUBLIC%\fmedia\" /min fmedia.exe "--record --out=%PUBLIC%\record_sound\out.ogg --format=int16 --channels=mono --rate=44100 --background --until=39600"
и проверяйте выходной файл...
1
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 7
06.09.2018, 09:04  [ТС] 11
Увы, но нет, в чём разница между запуском батника двойным щелчком мыши и запуском самого файла .bat из командной строки?
0
4288 / 2083 / 653
Регистрация: 26.04.2015
Сообщений: 6,720
06.09.2018, 11:25 12
Цитата Сообщение от Belousov94 Посмотреть сообщение
в чём разница
Цитата Сообщение от Belousov94 Посмотреть сообщение
вот скрипт целиком
а в том что в скрипте вообще нет определения переменной PUBLIC, у меня это сразу вызвало сомнения в его подлинности.
лучше бросьте сюда скрипт в архиве и мы посмотрим и его кодировочку и путь в переменной PUBLIC и желательно еще и имя скрипта указать (да-да, все бывает важно)
1
3658 / 1974 / 774
Регистрация: 06.06.2017
Сообщений: 6,889
06.09.2018, 12:17 13
Цитата Сообщение от alpap Посмотреть сообщение
в скрипте вообще нет определения переменной PUBLIC
set PUBLIC
0
0 / 0 / 0
Регистрация: 05.09.2018
Сообщений: 7
06.09.2018, 17:51  [ТС] 14
но папку он создаёт в этой директории, и подскажите пожалуйста, как скрипт подгрузить сюда?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.09.2018, 17:51

Запуск команды cmd из программы C++
Привет, как можно исполнить код командной строки из программы ? желательно чтоб окно командной...

Запуск программы через cmd
Всем привет! Никак не могу запустить приложение через cmd. Хочу заняться языком C, пробовал...

Запуск сторонней программы из скрипта
Добрый день! Подскажите пожалуйста, каким образом можно написать скрипт, запускающий стороннюю...

Запуск программы в терминале со скрипта
Собственно есть x-terminal-emulator, mplayer и плейлист. Сложил мальнький скрипт для запуска...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.