나는 배치 파일에서 시작 NOTEPAD.EXE를 사용하는 경우터보 C & 배치 파일
이 보여 내 배치 파일을 실행할 때 individully는 완벽 해의
작동 나누었다 나쁜 명령이유는 무엇입니까?
나는 배치 파일에서 시작 NOTEPAD.EXE를 사용하는 경우터보 C & 배치 파일
이 보여 내 배치 파일을 실행할 때 individully는 완벽 해의
작동 나누었다 나쁜 명령이유는 무엇입니까?
박쥐 파일을 올리시겠습니까? notepad.exe에 대한 경로는 수동으로 실행할 때 bat 파일을 실행하는 위치에 대한 상대 경로 일 수 있지만 C 응용 프로그램에서 호출 할 때 C 실행 파일의 위치에서 실행하면 더 이상 찾지 못합니다 notepad.exe 또는 notepad.exe로 전달할 수있는 파일명
notepad.exe의 경로와 관련이 있어야합니다. Windows에있는 경우 환경에 notepad.exe의 경로를 추가하십시오. 변수 "PATH"는 많은 것을 단순화합니다.
당신은 C 프로그램에서 배치 파일을 실행한다고 말합니다. 배치 파일을 실행할 때 환경이 제대로 설정되어 있는지 확인하십시오?
배치 파일을 실행할 때 PATH 환경 변수가 올바르게 설정되지 않으면 배치 파일이 실행되지 않습니다. 이 경우에는 환경이 올바르게 설정 되었기 때문에 배치 파일은 명령 줄에서 시작할 때 문제없이 작동합니다.
start
은 cmd.exe
의 내부 명령입니다. 그것은 프로그램 자체가 아닙니다. start
을 실행하려면 cmd.exe
을 실행하고 cmd.exe
을 start
할 필요가 있습니다.
system()
C 함수는 쉘을 실행하고 (Windows에서는 cmd.exe
일 수 있음) 인수를 해당 쉘에 전달하고 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;
}
당신이 배치 파일을 실행하는 코드를 게시 할 수있는 '내부'할 필요가, "작동하지 않는"자체 및
start
-exec*
함수는 쉘을로드하지 않습니다 제발? –배치 파일의 코드를 표시 할 수 있습니까? –