2011-09-08 4 views
0

Мой командный файл выполняется с с программой, но когда я начала notepad.exe в пакетном файлетурбо с & пакетный файл

это показывает плохо команда .Но когда я исполню мой пакетный файл individully работает perfect.What-х

Причина?

+0

вы можете разместить код, который запустит командный файл, пожалуйста ? –

+1

Можете ли вы показать код для командного файла? –

ответ

0

Не могли бы вы опубликовать свой bat-файл? Может быть, путь к notepad.exe относительно того, где вы запускаете свой файл bat, когда вы его запускаете вручную, но когда вы вызываете его из своего приложения C, вы запускаете его из местоположения исполняемого файла C, чтобы он больше не обнаруживал ни одного notepad.exe или fiel, который вы можете передать notepad.exe

0

Он должен иметь отношение к пути вашего notepad.exe, если вы находитесь в Windows, тогда попробуйте добавить путь к notepad.exe в среду переменная «PATH», которая может упростить множество вещей.

0

вы говорите, что вы выполняете командный файл из программы C. вы уверены, что среда настроена правильно, когда вы запускаете командный файл?

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

0

start - внутренняя команда cmd.exe; это не программа сама по себе. Чтобы запустить start, вам нужно запустить cmd.exe и иметь это cmd.exe сделать start вещь.

Функция system() Функция C выполняет оболочку (вероятно, cmd.exe в Windows) и передает аргумент этой оболочке - и start «работает».

В exec* функции не загружать оболочку - и start самих по себе «не работает»: оно должно быть «внутри» cmd.exe

#include <stdio.h> 
#include <stdlib.h> 
#include <unistd.h> 

int main(void) { 
    // system "works" 
    system("start C:\\tmp"); 

    // this don't work 
    execl("start", "start", "C:\\Windows", (char*)0); 
    printf("Oops: execl with start failed\n"); 

    // this "works" 
    execl("C:\\Windows\\System32\\cmd.exe", "start", "/c", "start", "C:\\Windows\\", (char*)0); 
    printf("Oops: execl with <path>\\cmd.exe failed\n"); 

    return 0; 
} 
Смежные вопросы