배경 :. 일부 Windows 명령 줄 프로그램이 자신의 첫번째 인수에 *.*
을 사용할 수 있습니다 :* * 변수는 argv에서 [1] C에서
myprogram *.*
및 디렉토리의 모든 파일에 자동으로 루프.
일부 다른 따라서 배치 루프를 필요로하지 않습니다 :
for %%c in ("*.*") do myprogram "%%c"
질문 : 이 거기에 *.*
또는 *.txt
을 허용하는 표준 방식 (C 언어에서 정의 또는 OS에서 제공?) 인수를 사용하여 관련 파일에서 자동으로 처리합니다.
int main(int argc, char *argv[])
{
FILE *kf;
"for fname in argv[1]" // pseudo code here meaning:
// let's loop on all files described by the first argument
{
kf = fopen(fname, "rb");
...
}
}
나는 이것에 대한 해결책 (등, FindFirstFile을를 사용하여, 와일드 카드 확장의 바퀴를 재발 명) 내 자신을 압연하기 전에 존재하는 경우
AFAIK (자동으로 *. *를 반복하는 프로그램) 코드를 뒤에 코드로 작성할 수 있습니다. 코드를 작성하여 항상 동일한 동작을 얻을 수 있습니다. – P0W
C 언어에는 표준이 없습니다. 인수 확장 (있는 경우)은 쉘에 의해 수행됩니다. 일반적으로 유닉스/리눅스 셸이 확장을 수행하지만 Windows cmd는 확장을 수행하지 않습니다. 따라서 확장이 이루어지는 Windows 프로그램은 직접 처리합니다. argv [1]에서 "* .txt"를 찾은 다음 디렉토리 목록을 작성하고 발견 된 각 파일을 처리합니다. –
... [FindFirstFile] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85) .aspx) 및 친구가 작업을 수행합니다. –