Как выполнить пакетный (.bat) файл в Windows с C - PullRequest
0 голосов
/ 08 апреля 2019

Мне нужно запрограммировать что-то на C, которое может выполнять файл .bat в Windows.

Естественно, функция system() должна прийти на ум.Тем не менее, существует огромная проблема .По сути, функция system() не выполняется.

То, что я пробовал:

1) Компиляция и запуск моего кода из терминала Cygwin работает, однако это не совсем реально, потому что яМне нужно перенести мою программу на другой компьютер, и установка Cywind на каждом из них - просто плохая идея.

2) Я попытался перейти на C:\Windows\System32\ и все еще не работает.

3) Я пытался с popen(), и все еще не работает.

4) Может ли это быть из-за используемого мной компилятора: Cywin64 на CLion?Но даже если я изменил среду на Windows Subsystem for Linux, она все равно НЕ работает!

На данный момент я потерял много клеток мозга и почти сдался.

После всех попыток, я думаю, причина в том, что либо system() попытался бы запустить команду из /bin/sh, которая недоступна при запуске из обычного окна консоли cmd, либо system() просто откровенносломана.Кроме того, не только запуск пакета, но и любая другая команда cmd не будет работать.Черт, даже ls не будет работать.

Поиск в Google не помогает вообще.

Все, что мне действительно нужно, - это запускать файл .bat внутри программы на Си.В основном это.Любой совет?

Ответы [ 2 ]

1 голос
/ 08 апреля 2019
0 голосов
/ 09 апреля 2019

ShellExecute() не работает. То же самое произошло с System().

Мое решение состоит в том, чтобы загрузить Microsoft Visual Studio и запустить Clion в среде VS (необходимо устранить определенную проблему совместимости).

...